4

在我的 CloudKit 应用程序中,我在存储所有 CKRecords 的私有数据库中创建了一个区域。CKRecords 可以是 10 种不同的记录类型,其中一些可以附加 CKAsset。我CKFetchRecordZoneChangesOperation用来查找该区域的记录更改,并下载它们。我想优化,CKFetchRecordZoneChangesOperation以便我只包含desiredKeys在下载中,所以我当时不下载 CKAsset,但似乎没有任何方法可以为每个记录类型指定这个。相反,您似乎只能指定desiredKeysCKFetchRecordZoneChangesOptionszoneID 上设置的 on 。

CKFetchRecordZoneChangesOperation那么,考虑到该区域中有不同类型的记录类型,我如何在我的提取中指定“desiredKeys” ?我在这里错过了一些简单的东西吗?我猜的另一个(极端)选项是为每种记录类型创建一个记录区域,但如果有可能的话,我不想走这条路。

谢谢。

4

1 回答 1

0

唯一的选择是为每种记录类型添加字段名称的前缀。这使得可以为每个记录类型指定所需的键。

https://developer.apple.com/reference/cloudkit/ckfetchrecordzonechangesoptions/1640472-desiredkeys状态:

var desiredKeys:[字符串]?

...

因为您获取的记录可以是不同类型的,所以该数组应包含所请求记录的所有字段名称的合并集,并至少包含每个记录类型中的一个字段名称。

...

你的观察是真实的。您也不能获取特定于记录类型的区域更改。

于 2017-08-09T15:40:58.223 回答