Я создаю приложение 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 –