单个 CKRecord 中的一系列 CKAsset 是不是存在问题?
Posted
技术标签:
【中文标题】单个 CKRecord 中的一系列 CKAsset 是不是存在问题?【英文标题】:Are there issues with an array of CKAssets in a single CKRecord?单个 CKRecord 中的一系列 CKAsset 是否存在问题? 【发布时间】:2015-05-25 02:20:09 【问题描述】:我正在编写的应用程序将允许人们存储多张照片,并将它们与单个对象相关联。
我想我会使用 CloudKit 将这些图像存储为 CKAsset。
在 CloudKit 中,除了其他属性列表类型之外,我还可以创建一个 CKAsset,并将文件附加到它(在我的例子中是 JPEG)。我还可以附加任何这些类型的 NSArray,包括 CKAsset。
我的用户可能会为每个对象发送最多 5 张图片,或者可能是 30 张……谁知道呢。
只是想知道是否有人遇到过这样的情况,并看到这种方法的缺点。 (例如,相对于为每个图像创建单独的 CKRecord,并添加对另一个 CKRecord 的引用)。
【问题讨论】:
我刚刚开始做类似的事情。我将通过CKAsset
将几十张图片添加到单个CKRecord
。这就是你应该能够做到的。
是的,我的意思是,我知道我可以这样做,我只是想知道是否最好创建一个 NSArray,并附加所有这些 CKAsset 文件,或者是否可以我应该创建一个仅包含 CKAsset 的单独记录类型,并创建对它的引用。这些是图像,每个可能是几兆字节。它可以以任何一种方式编码。只是想知道以一种方式(记录中的所有图像)与另一种方式(记录中的每个图像,引用“父”记录)是否可能存在性能/带宽/其他问题。
我建议以“正确”的方式进行(将资产附加到他们的记录中),然后看看情况如何。在问题存在之前不要寻找问题。我只能假设 Apple 很聪明地知道他们是如何让它工作的。
【参考方案1】:
获取具有多个 CKAsset 的 CKRecord 可能需要相当长的时间来下载。你将无法控制它。如果您将每个资产存储在它自己的 CKRecord 中,并带有对其父记录的 CKReference,那么您可以查询这些资产,您将能够看到它们一一出现。除此之外,您确定在访问主记录时始终需要所有 CKAsset 吗?如果没有,那将是对带宽的浪费。我建议为每项资产单独记录。然后您还可以添加一个assetType 字段,以便您可以根据需要区分资产。
【讨论】:
谢谢,这是我第一次接触 CloudKit,所以这很有帮助。以上是关于单个 CKRecord 中的一系列 CKAsset 是不是存在问题?的主要内容,如果未能解决你的问题,请参考以下文章
好奇 CKAsset 的 fileUrl 是不是会随时间变化?
CKAsset 获取 PDF 并呈现在 UIWebView Swift3 中