이 날이 오류를 보여CloudKit 데이터베이스 fetchRecordWithID 오류가
recordID와는 CKFetchRecordsOperation에 전달 예기치 않은 : CKReference : 0x7fb691c1c300; 8BBDA567-D00A-4603-91A2-D436677F3952 : (_ defaultZone : __ defaultOwner__)
나는 이유를 모른다. "owner"레코드를 참조하여 이전에 가져온 레코드에서 해당 레코드 ID를 가져 왔습니다. 그래서 내 reference 속성에서 해당 recordID를 가져오고 싶습니다.
내가 뭘 잘못 했니?
여기이 내 코드입니다 :
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
}
호기심 내가 대시 보드에서 검색 할 때 내 오류 메시지에서 8BBDA567-D00A-4603-91A2-D436677F3952를 잘 ID는 것입니다.
"소유자"레코드를 가져 오는 다른 방법은 없습니까?
감사합니다. 나는 항상 그 참조에서 직접 CKRecord를 만들려고 시도했다. :)하지만 나는 다른 곳에서 가져 오기를 할 때 여전히 문제가있다 .Handler와 그 중 하나가 더 가져온다. 그게 합법적인가? 그것은 (in) 메소드를 시작할 때 두 번째 페치 후에 항상 작동을 멈춘다. – Mayo323
아마도 addOperation과 함께 다른 패치를 추가해야합니까? – Mayo323
CloudKit 작업을 중첩 할 수 있어야하지만 이전에 이런 종류의 잠금을 본 적이 있습니다. 내 코드에서는 메인 큐에서 내부 연산을 시작하여이 문제를 해결했다고 생각합니다. –