2015-06-14 20 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]; 

回答

相关问题