cloudKit:公共数据库中的CKFetchRecordChangesOperation
我使用cloudKit构建了一个iOS应用程序。 我正在尝试在cloudKit中批量获取数据,获得设备和cloudKit之间的增量,但似乎CKFetchRecordChangesOperation在公共数据库中不起作用。 我唯一的选项是CKQuery来获取我的数据吗? 例如:
CKContainer *container = [CKContainer containerWithIdentifier:containerID]; CKDatabase *publicDatabase = [container publicCloudDatabase]; CKQuery *query = [[CKQuery alloc] initWithRecordType:recordType predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]]; CKQueryOperation *queryOp = [[CKQueryOperation alloc] initWithQuery:query]; queryOp.desiredKeys = @[@"record.recordID.recordName"]; queryOp.recordFetchedBlock = ^(CKRecord *record) { // do something... }; queryOp.queryCompletionBlock = ^(CKQueryCursor *cursor, NSError *error) { // do something else... }; queryOp.resultsLimit = CKQueryOperationMaximumResults; [publicDatabase addOperation:queryOp];
我真的很感谢你的帮助。
CKFetchRecordChangesOperation的apple文档说明:
recordZoneID:包含要获取的记录的区域。 该区域可以是自定义区域。 不支持同步默认区域。
这意味着它不会在公共数据库上工作,因为它只支持默认区域。
实现相同function的正确方法是为您需要的数据创建订阅,并使用CKFetchNotificationChangesOperation检索该数据。 当然你也可以只执行一些CKQuery命令,但是你可能经常获取数据或执行你不需要的查询。
- 在UIScrollView的滚动过程中启用UITableView滚动
- 下载图像一个一个与URL使用SDWebimage
- 耳机拔出时是否有事件发生?
- Xcode 7:'supportedInterfaceOrientations'实现中的返回types冲突:'UIInterfaceOrientationMask'vs'NSUInteger'
- 用于解码块中的zip文件的库
- 如何使用JavaScript在iOS上捕捉隐藏键盘事件
- iOS – 在string中查找单词出现次数的最有效方法
- 弱链接iPhone应用程序的多个框架(-weak_framework)
- SpringWithDamping为CALayeranimation?