优化 CKFetchRecordZoneChangesOperations(获取所需密钥)



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

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

谢谢。

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

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

var desiredKeys: [String]?

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

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

最新更新