我使用cloudKit構建iOS應用程序。我試圖對cloudKit中的數據進行批量獲取,以獲取設備和cloudKit之間的增量,但似乎CKFetchRecordChangesOperation在公共數據庫中不起作用。我唯一的選項是CKQuery來獲取我的數據嗎?例如:cloudKit:公共數據庫中的CKFetchRecordChangesOperation
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你可以發表一個例子嗎? – user2924482
這裏我共享代碼如何使用'CKFetchNotificationChangesOperation':http://stackoverflow.com/questions/30213261/ckfetchnotificationchangesoperation-cant-fetch-notification –