我正在使用CKDiscoverAllContactsOperation
,但它对我不起作用。
-(void)queryForAllUsers: (void (^)(NSArray *records))completionHandler {
CKDiscoverAllContactsOperation *op = [[CKDiscoverAllContactsOperation alloc] init];
[op setUsesBackgroundSession:YES];
op.queuePriority = NSOperationQueuePriorityNormal;
[op setDiscoverAllContactsCompletionBlock:^(NSArray *userInfos, NSError *error) {
if (error) {
NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), error);
//abort();
} else {
NSLog(@"Number of records in userInfos is: %ld", (unsigned long)[userInfos count]);
dispatch_async(dispatch_get_main_queue(), ^(void){
completionHandler(userInfos);
});
}
}];
[self.container addOperation:op];
}
我使用的容器是publicCloudDatabase
。
答案 0 :(得分:4)
搜索仅在不同用户激活应用程序,被批准为可发现并且在其联系人中拥有其他人的iCloud电子邮件地址时才有效。
答案 1 :(得分:0)
您应该在容器上使用discoverAllContactUserInfosWithCompletionHandler,如下所示:
[self.container discoverAllContactUserInfosWithCompletionHandler:^(NSArray *userInfos, NSError *error) {
..
}
此功能仅返回可以链接到iCloud帐户的联系人,此人也启动了您的应用。