2015-06-14 22 views
0

我有一個recordID.recordName(在這個例子中是singleID),我想查詢queryOp;經過一番搜索和實驗之後,我設法將這些代碼放在一起......這很有效,但它確實是正確的,也許有一條較短的路徑。QueryOp with recordID

CKRecordID *wellKnownIDx = [[CKRecordID alloc] initWithRecordName:singleID]; 
CKReference *singleREX = [[CKReference alloc] initWithRecordID:wellKnownIDx action:CKReferenceActionDeleteSelf]; 

CKDatabase *publicDatabase = [[CKContainer containerWithIdentifier:@"iCloud.blah"] publicCloudDatabase]; 
NSPredicate *predicatex = [NSPredicate predicateWithFormat:@"recordID == %@",singleREX]; 

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Courses" predicate:predicatex]; 
CKQueryOperation *queryOp =[[CKQueryOperation alloc] initWithQuery:query]; 
queryOp.desiredKeys = @[@"record.recordID.recordName"]; 
queryOp.resultsLimit = 1; 

queryOp.recordFetchedBlock = ^(CKRecord *results) 
{ 
    NSLog(@"Student Found %@",results.recordID.recordName); 
}; 

queryOp.queryCompletionBlock = ^(CKQueryCursor *cursor, NSError *error) 
{ 
    NSLog(@"CKQueryCursor error %@", error); 
}; 

[publicDatabase addOperation:queryOp]; 

回答

相關問題