Meine Methode zum programmgesteuerten Abrufen von E-Mail-Adressen aus dem Adressbuch scheint nicht mehr auf iOS 6-Geräten zu funktionieren. Es funktionierte in iOS 5 und funktioniert seltsamerweise immer noch im iOS 6 Simulator. Gibt es eine neue Möglichkeit zum programmgesteuerten Abrufen von Kontakten aus dem Adressbuch eines Benutzers?iOS 6 Adressbuch funktioniert nicht?
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
self.contacts = [[NSMutableArray alloc] init];
int contactIndex = 0;
for (int i = 0; i < nPeople; i++) {
// Get the next address book record.
ABRecordRef record = CFArrayGetValueAtIndex(allPeople, i);
// Get array of email addresses from address book record.
ABMultiValueRef emailMultiValue = ABRecordCopyValue(record, kABPersonEmailProperty);
NSArray *emailArray = (__bridge_transfer NSArray *)ABMultiValueCopyArrayOfAllValues(emailMultiValue);
[self.contacts addObject:emailArray];
}
Um zu verdeutlichen, stürzt das oben genannte nicht ab, es gibt einfach keine Ergebnisse zurück. ABAddressBookCopyArrayOfAllPeople ist leer. Vielen Dank!
Ja, du hast Recht. Brauchen Sie ABAddressBookRequestAccessWithCompletion(). Wie kann ich überprüfen, ob diese Methode existiert (für
Keller