【发布时间】:2015-05-22 10:46:15
【问题描述】:
我使用 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将只在自定义区域的私有数据库中工作。CKFetchNotificationChangesOperation也适用于公共数据库。 -
@János 你能发个例子吗?
-
这里分享了代码如何使用
CKFetchNotificationChangesOperation:stackoverflow.com/questions/30213261/… -
@János 你有 Objective-C 版本吗?
标签: ios xcode6 cloudkit ckfetchrecordchangesopera ckfetchnotificationchange