CloudKit获取所有用户记录

时间:2015-11-12 19:38:43

标签: ios objective-c cloudkit

我想获取所有在我的应用程序的同一公共默认容器中工作的用户。 是否可以获取所有用户ID?

当我尝试这样做时:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"TRUEPREDICATE"]; // to search for all the records
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Users" predicate:predicate];
[_publicDB performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
    if (error) {
        // Error handling for failed fetch from public database
        NSLog(@"Error:%@", error);
    }
    else {
        // Display the fetched records
        NSLog(@"Users: %@", results);
    }
}];

我收到这样的错误:

Error:<CKError 0x7f9c6b7331f0: "Permission Failure" (10/2007); server message = "Can't query system types"; uuid = 9CBA8EB0-D9DC-46B2-BDF4-10C036599642; container ID = "iCloud.com.xxx.xxx.MyApp">

你知道我怎么能做到这一点?我想从客户角度(iOS)了解使用我的应用程序的其他用户是什么。

1 个答案:

答案 0 :(得分:3)

Users recordType是一个您无法查询的特殊recordType。如果要执行此类查询,则应创建自己的recordType并为每个用户插入记录。