W moim kodzie używam ABPeoplePickerNavigationController do wyboru osoby. Po użytkownikowi wybrać osobę z listy kontaktów, patrzę, czy określona osoba rekord mieć dowolny numer telefonu:Książka adresowa iOS 6 pusta kABPersonPhoneProperty
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
ABMutableMultiValueRef phones;
phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (phones == nil || ABMultiValueGetCount(phones) == 0)
{
return NO;
}
// other code....
}
Stworzyłem kontakt, dodaje do niego numer telefonu i przetestowane mój kod. W iOS 5 ten kod działa dobrze. telefony zmienna zawiera jeden numer telefonu.
Ale w iOS 6, po połączeniu kontaktu z kontem facebook, telefony zmienna nie zawiera żadnych wartości.
Po rozłączeniu kontaktu z kontem na Facebooku wszystko znów działa dobrze.
Jak mogę odczytać numery telefonów osób tą metodą?
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
UPD
Jeśli wrócę TAK w funkcji powyżej, a następnie w zależności
(BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
mogę odczytać wszystkie numery telefonów osoba w normalny sposób. Dlaczego więc nie mogę ich odczytać w pierwszej funkcji?
Myślę, że ten samouczek Ci pomoże. http://blog.slaunchaman.com/2009/01/21/cocoa-touch-tutorial-extract-address-book-address-values-on-iphone-os/ –
o tym samym problemie. Jakiś postęp? – aryehs