优化CKFetchRecordZoneChangesOperation以获取所需的Keys

时间:2017-05-02 19:50:57

标签: ios ios10 cloudkit ckoperation ckrecordzone

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

那么如何指定' desiredKeys'考虑到该区域中有不同类型的记录类型,我的CKFetchRecordZoneChangesOperation获取了吗?我错过了一些简单的东西吗? 我想的另一个(激烈的)选项是为每种记录类型创建一个记录区域,但如果有可能的替代方案,我不想沿着这条路走下去。

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

  

var desiredKeys:[String]?

     

...

     

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

     

...

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