使用 recordName 获取单个记录,它应该 return 来自 icloud 的特定字段
Fetch single record using recordName and it should return specific field from icloud
我想使用 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.code 中有 15 个字段没有 return 任何东西,甚至没有错误。
对于和我一样面临同样问题的人:
CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"recordID == %@",[[CKRecordID alloc]initWithRecordName:recordId]];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"RecordTypeName" predicate:predicate];
CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query];
NSOperationQueue * operationQueue = [[NSOperationQueue alloc] init];
queryOperation.database = publicDatabase;
queryOperation.resultsLimit =1 ;
queryOperation.desiredKeys = @[@"name",@"city",@"state"];
queryOperation.recordFetchedBlock = ^(CKRecord * record) {
NSLog(@"record------%@",record);
};
queryOperation.queryCompletionBlock = ^(CKQueryCursor * cursor, NSError * error) {
if (error) {
NSLog(@"error--------%@",error);
} else
{
if (cursor) {
NSLog(@"cursor-------%@",cursor);
}
else
{
NSLog(@"end");
}
}
};
[operationQueue addOperation:queryOperation];
我想使用 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.code 中有 15 个字段没有 return 任何东西,甚至没有错误。
对于和我一样面临同样问题的人:
CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"recordID == %@",[[CKRecordID alloc]initWithRecordName:recordId]];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"RecordTypeName" predicate:predicate];
CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query];
NSOperationQueue * operationQueue = [[NSOperationQueue alloc] init];
queryOperation.database = publicDatabase;
queryOperation.resultsLimit =1 ;
queryOperation.desiredKeys = @[@"name",@"city",@"state"];
queryOperation.recordFetchedBlock = ^(CKRecord * record) {
NSLog(@"record------%@",record);
};
queryOperation.queryCompletionBlock = ^(CKQueryCursor * cursor, NSError * error) {
if (error) {
NSLog(@"error--------%@",error);
} else
{
if (cursor) {
NSLog(@"cursor-------%@",cursor);
}
else
{
NSLog(@"end");
}
}
};
[operationQueue addOperation:queryOperation];