특정 그룹의 모든 연락처를 반환해야합니다. 그래서 모든 연락처를 추출하는 몇 가지 샘플 코드를 수행하려고했습니다. 전화 번호부에있는 모든 그룹을 찾는 데 필요합니다. 내가 전화 번호부를 열었을 때 나는 두 개의 계정을 설정했기 때문에 이미 그룹이 두 개 있다는 것을 알았습니다 설정 -> 메일, 연락처, 캘린더. iCloud
및 Yahoo 계정. ABAddressBookGetGroupCount가 적절한 수를 제공하지 않습니다.
다음
내가 작성한 코드는 내가 여기에 뭔가 잘못을하고있는 중이 야 경우 누군가가 제안 할 수 있습니다 0을 얻고있는 반면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);
}
}
가 지금은 2로 카운트를 가지고 있어야 모든 그룹 이름을 얻는 것입니다 ?