【发布时间】:2015-10-29 11:31:30
【问题描述】:
我想使用 cloudkit 从 icloud 获取单个记录。
这是我正在使用的代码:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"recordName contains %@",recordId];
NSLog(@"predicate------%@",predicate);
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"AmuzItems" predicate:predicate];
CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query];
queryOperation.database = publicDatabase;
queryOperation.resultsLimit =1 ;
queryOperation.desiredKeys = @[@"name",@"city",@"state"];
queryOperation.recordFetchedBlock = ^(CKRecord * record) {
NSLog(@"record------%@",record);
};
queryOperation.queryCompletionBlock = ^(CKQueryCursor * cursor, NSError * operationError) {
if (operationError) { NSLog(@"error--------%@",operationError);
} else
{
NSLog(@"cursor------%@",cursor);
}
};
只想检索name, city, state 字段。 RecordType 中有 15 个字段。代码不返回任何内容,甚至不返回错误。
【问题讨论】:
-
您可以尝试将 queryOperation.qualityOfService 设置为 .UserInteractive
-
@EdwinVermeer :谢谢回复。我试过了,但没用。之后我使用了 NSOperationQueue。并对 nspredicate 进行一些更改,它就可以工作了。
-
啊...我错过了那个。您忘记了 [queryOperation start];作为最后一行。
标签: objective-c cloudkit