CloudKit: CKFetchRecordChangesOperation in a public database

I am creating an iOS application using cloudKit. I am trying to batch fetch data in cloudKit, getting a delta between the device and the cloud, but it looks like CKFetchRecordChangesOperation is not working in a public database. Is my only CKQuery option parameter to retrieve my data? eg:

 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];

I will be very grateful for your help.

+4
source share
1 answer

The apple documentation for CKFetchRecordChangesOperation states:

recordZoneID: zone containing the records you want to receive. A zone may be a user zone. Zone synchronization is not supported by default.

, , .

- CKFetchNotificationChangesOperation. , CKQuery, , , , .

+3

Source: https://habr.com/ru/post/1589414/


All Articles