ios 8 ベータ版の icloud をいじっており、CloudKitAtlasAnIntroductiontoCloudKit
サンプル プロジェクトは非常に役に立ちました。
https://developer.apple.com/library/prerelease/ios/samplecode/CloudAtlas/Introduction/Intro.html
しかし、クラスを使用したかったのCKDiscoverAllContactsOperation
ですが、サンプル コードがどこにも見つからず、オンライン ドキュメントもあまり役に立ちません。
https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKDiscoverAllContactsOperation_class/index.html
誰かが正常に使用CKDiscoverAllContactsOperation
できた場合は、私を正しい方向に向けるか、どのように呼び出すべきかの実例を示してください。
iCloudから応答を得ることができるかどうかを確認するためにこれを試しましたが、何もありません:
- (void)queryForRecordsOtherUsersInAddressBookcompletionHandler:(void (^)(NSArray *records))completionHandler {
CKDiscoverAllContactsOperation *discoverAllContactsOperation= [[CKDiscoverAllContactsOperation alloc] init];
[discoverAllContactsOperation setContainer:_container];
NSMutableArray *results = [[NSMutableArray alloc] init];
discoverAllContactsOperation.discoverAllContactsCompletionBlock = ^(NSArray *userInfos, NSError *operationError) {
[results addObjectsFromArray:userInfos];
};
discoverAllContactsOperation.discoverAllContactsCompletionBlock=^(NSArray *userInfos, NSError *operationError){
if (operationError) {
// In your app, handle this error with such perfection that your users will never realize an error occurred.
NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), operationError);
abort();
} else {
dispatch_async(dispatch_get_main_queue(), ^(void){
completionHandler(results);
});
}
};
}
そしてこれで呼び出します...
[self.cloudManager queryForRecordsOtherUsersInAddressBookcompletionHandler:^(NSArray *records ) {
if (records.count==0){
NSLog(@"Login name not found");
return;
}
//self.results= records;
//_loggedInRecord = self.results[0];
//NSLog(@"%@,%@",_loggedInRecord[@"lastName"],_loggedInRecord[@"firstName"]);
// [self performSegueWithIdentifier:@"loggedInSegue" sender:self ];
}];
コードが実際に何もするべきではないことを私は知っています。繰り返しますが、iCloud からの応答を探していました。