单个 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 中

Keras 中的自定义损失函数应该返回批次的单个损失值还是训练批次中每个样本的一系列损失?

Xcode:CloudKit 中的 CKAsset

将资产列表(数组)保存到特定的 CKRecord

服务器记录中的 CKAsset 不包含 fileURL,甚至无法检查 nil