When i want to fetch record from private database it show me this error:
Unexpected recordID passed to CKFetchRecordsOperation: CKReference: 0x7fb691c1c300; 8BBDA567-D00A-4603-91A2-D436677F3952:(_defaultZone:__defaultOwner__)
I don't know why. I took that recordID from my previously fetched record with reference to that "owner" record. So i want fetch that recordID from my reference attribute.
Is something what i do wrong?
Here is my code for this:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"creationDate > %@", upToDate];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Car" predicate:predicate];
CKContainer *container = [CKContainer defaultContainer];
CKDatabase *privateDB = [container privateCloudDatabase];
[privateDB performQuery:query inZoneWithID:nil completionHandler:^(NSArray*results, NSError*error){
for (CKRecord*carRecord in results) {
CarModel *car = [CarModel new];
CKRecordID *ownerID = [record objectForKey:@"owner"];
[privateDB fetchRecordWithID:ownerID completionHandler:^(CKRecord *record, NSError*error){
// here i expect record with recordID same as recordID in my reference attribute
}
Curious is that 8BBDA567-D00A-4603-91A2-D436677F3952 from my error message is right ID when i search for it in Dashboard.
Is any other way to fetch "owner" record?
your ownerID should be of type CKReference. Then you have to query for the ownerID.recordID like this:
CKReference *ownerID = [record objectForKey:@"owner"];
[privateDB fetchRecordWithID:ownerID.recordID completionHandler:^(CKRecord *record, NSError*error){