特定のグループのすべての連絡先を返す必要があります。そのため、すべての連絡先を抽出するサンプル コードを実行しようとしています。まず、電話帳ですべてのグループを検索する必要があります。電話帳を開くと、[設定]->[メール、連絡先、カレンダー] で 2 つのアカウントを設定したため、既に 2 つのグループが作成されていることがわかりました。iCloud
そしてヤフーアカウント。
以下は、すべてのグループ名を取得するために書いたコードです
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
{
// First time access has been granted, add the contact
// NSLog(@" given access..asked first time");
[self getContacts:addressBookRef];
});
}
else
[self getContacts:addressBookRef];
}
-(void) getContacts:(ABAddressBookRef) addressBookRef
{
NSString* groupName;
CFArrayRef groups = ABAddressBookCopyArrayOfAllGroups(addressBookRef);
CFIndex count = ABAddressBookGetGroupCount(addressBookRef);
for (int i=0; i<count;i++) {
ABRecordRef record = CFArrayGetValueAtIndex(groups, i);
groupName = ( NSString *)ABRecordCopyCompositeName(record);
NSLog(@"Group %d : %@",i+1,groupName);
}
}
今、私は0を取得しているのに対し、カウントを2として取得する必要があります。