Ich zeige dem Benutzer eine Adressbuchansicht und lasse ihn auf einen Kontakt klicken und eine Telefonnummer auswählen. Wenn er eine Telefonnummer auswählt, möchte ich die Telefonnummer als Ganzzahl und den Namen des Kontakts als NSString bekommen.
Ich habe versucht, es mit folgendem Code zu tun:
//printf("%s\n",[[(NSArray *)ABMultiValueCopyArrayOfAllValues(theProperty) objectAtIndex:identifier] UTF8String]);
//CFArrayRef *arrayString = [[(NSArray *)ABMultiValueCopyArrayOfAllValues(theProperty) objectAtIndex:identifier] UTF8String];
NSArray *arrayString = [(NSArray *)ABMultiValueCopyArrayOfAllValues(theProperty) objectAtIndex:identifier];
printf("%s\n", arrayString);
Dieser Code befindet sich innerhalb dieser Methode:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
Und ich überprüfe, ob der Benutzer eine Telefonnummer ausgewählt hat, mit diesem Code:
if (propertyType == kABStringPropertyType)
{
[self wrongSelection];
}
else if (propertyType == kABIntegerPropertyType)
{
[self wrongSelection];
}
else if (propertyType == kABRealPropertyType)
{
[self wrongSelection];
}
else if (propertyType == kABMultiStringPropertyType)
{
//Das ist die Telefonnummer...
Ich kann die Telefonnummer im Konsolenfenster anzeigen lassen mit printf, aber ich kann nicht herausfinden, wie ich sie in eine Ganzzahl umwandeln und auch den Namen des Kontakts erhalten kann, auch wenn die ausgewählte Eigenschaft nicht der Name einer Person ist.
Außerdem scheint das, was ich tue, sehr ineffizient zu sein. Gibt es bessere Möglichkeiten, das zu tun?
Bearbeitung: Wenn ich sie nicht als Ganzzahl speichern kann, wäre auch eine Zeichenfolge in Ordnung. Ich kann einfach nicht herausfinden, wie ich von diesem Array zu einer tatsächlichen Zeichenfolge komme. Wenn ich es umwandle oder als UTF8String speichere, erhalte ich immer einen Fehler.