In meinem Code benutze ich ABPeoplePickerNavigationController, um eine Person auszuwählen. Nachdem der Benutzer wählen Person aus der Kontaktliste, sehe ich, wenn bestimmte Person Datensatz jede Telefonnummer haben:iOS 6 Adressbuch leer KABPersonPhoneProperty
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
ABMutableMultiValueRef phones;
phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (phones == nil || ABMultiValueGetCount(phones) == 0)
{
return NO;
}
// other code....
}
Ich habe Kontakt aufgenommen Telefonnummer zu ihm und meinen Code getestet. In iOS 5 funktioniert dieser Code gut. Telefone Variable enthält eine Telefonnummer.
Aber in iOS 6, nach der Verknüpfung von Kontakt zu Facebook-Konto, Telefone Variable enthält keine Werte.
Nach dem Aufheben der Verbindung mit Facebook Konto funktioniert alles wieder gut.
Wie kann ich Telefonnummern dieser Methode lesen?
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
UPD
Wenn i JA in der obigen Funktion zurück, dann in Funktion
(BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
ich alle Person Telefonnummern in normaler Art und Weise lesen. Warum kann ich sie nicht in der ersten Funktion lesen?
Ich denke, dieses Tutorial wird Ihnen helfen. http://blog.slaunchaman.com/2009/01/21/cocoa-touch-tutorial-extract-address-book-address-values-on-iphone-os/ –
mit dem gleichen Problem. Irgendein Fortschritt? – aryehs