Чтобы закрыть и завершить эту проблему, вот основная часть моего решения:
ABAddressBookRef m_addressbook = ABAddressBookCreate();
if (!m_addressbook) {
NSLog(@"opening address book");
}
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);
CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);
[.....]
adressList = [[NSMutableDictionary alloc] init];
for (int i=0;i < nPeople;i++) {
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);
vorname = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
nachname = ABRecordCopyValue(ref, kABPersonLastNameProperty);
nameTag = [NSString stringWithFormat:@"%@ %@.", vorname, nachname];
ABMultiValueRef phones =(NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty);
// Loop thru all numbers of a person
for(CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) {
tmpNumber = (NSString*)ABMultiValueCopyValueAtIndex(phones, i);
tmpNumber = [self cleanupPhoneNumber:tmpNumber];
[adressList setObject: nameTag forKey:tmpNumber];
NSLog(@"Name: %@ | Phone: %@", nameTag, tmpNumber);
}
}