- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的 CloudKit 应用程序中,我在存储所有 CKRecords 的私有(private)数据库中创建了一个区域。 CKRecords 可以是 10 种不同的记录类型,其中一些可以附加 CKAssets。我使用 CKFetchRecordZoneChangesOperation
查找此区域中的记录更改,并下载它们。我想优化 CKFetchRecordZoneChangesOperation
以便我在下载中只包含 desiredKeys
,所以我当时不下载 CKAsset,但似乎没有以任何方式指定每个记录类型。相反,您似乎只能在 CKFetchRecordZoneChangesOptions
上指定 desiredKeys
,这是在 zoneID 上设置的。
那么考虑到该区域中有不同类型的记录类型,我如何在我的 CKFetchRecordZoneChangesOperation
提取上指定“desiredKeys”?我在这里错过了一些简单的东西吗?我猜想的另一个(激进的)选项是为每种记录类型创建一个记录区域,但如果可能的话,我不想走这条路。
谢谢。
最佳答案
唯一的选择是为每种记录类型添加字段名称前缀。这使得为每个记录类型指定所需的键成为可能。
https://developer.apple.com/reference/cloudkit/ckfetchrecordzonechangesoptions/1640472-desiredkeys状态:
var desiredKeys: [String]?
...
Because the records you fetch can be of different types, the array should contain the merged set of all field names for the requested records and include at least one field name from each record type.
...
您的观察是正确的。您也不能获取特定于记录类型的区域更改。
关于ios - 优化 CKFetchRecordZoneChangesOperation 以获取 desiredKeys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43746117/
假设您正在使用 CKFetchRecordZoneChangesOperation 获取任何更改。 您已成功获取所有已更改的CKRecords,但是,您目前尚未创建本地缓存。但是您确实在 record
在我的 CloudKit 应用程序中,我在存储所有 CKRecords 的私有(private)数据库中创建了一个区域。 CKRecords 可以是 10 种不同的记录类型,其中一些可以附加 CKAs
我正在从 CloudKit 服务器获取记录更改,但每次我都会出错 [LogFacilityCK] Got a connection error for operation E0367CA861DAF5
我正在尝试实现与 CloudKit 的同步。要从服务器获取更改,我正在使用 CKFetchRecordZoneChangesOperation。然而,根本没有调用 recordZoneChangeTo
我是一名优秀的程序员,十分优秀!