Nel mio codice uso ABPeoplePickerNavigationController per selezionare la persona. Dopo utente selezionare persona dalla lista dei contatti, guardo se il record della persona specificata ha alcun numero di telefono:Rubrica iOS 6 vuota kABPersonPhoneProperty
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
ABMutableMultiValueRef phones;
phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (phones == nil || ABMultiValueGetCount(phones) == 0)
{
return NO;
}
// other code....
}
ho creato il contatto, ha aggiunto il numero di telefono ad esso e testato il mio codice. In iOS 5 questo codice funziona bene. numero di telefono variabile contiene un numero di telefono.
Ma in iOS 6, dopo aver collegato il contatto all'account facebook, la variabile telefoni non contiene alcun valore.
Dopo aver scollegato il contatto con l'account Facebook, tutto funziona correttamente.
Come posso leggere i numeri di telefono di questa persona?
- (BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController*)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person
UPD
se torno SI nella funzione di cui sopra, quindi nella funzione
(BOOL) peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
posso leggere tutti i numeri di telefono persona in modo normale. Quindi, perché non riesco a leggerli nella prima funzione?
penso che questo tutorial ti aiuterà. http://blog.slaunchaman.com/2009/01/21/cocoa-touch-tutorial-extract-ad-ress-book-ad-ress-values-on-iphone-os/ –
aventi lo stesso problema. Qualche progresso? – aryehs