2011-01-11 8 views
1

II versucht, den Wert von ABPerson/ABMultiValue (die Telefonnummern) zu ändern.Wie aktualisiere ich: (COCOA/OSX) ABPerson/ABMultiValue (Telefonnummern)?

Wie auch immer, um diese zu aktualisieren?

ABAddressBook *ab = [ABAddressBook sharedAddressBook]; 
NSArray *persons = [ab people]; 

int j=[persons count]; 

for (int i=0; i<j; i++) { 
    ABPerson *person = [persons objectAtIndex:i];    
    ABMultiValue *phonenumbers = [person valueForProperty:kABPhoneProperty]; 
    // update here *phonenumbers 
} 

Vielen Dank!

Antwort

2

Try calling:

ABMultiValueRef phoneNumbers = ABMultiValueCreateMutable(kABPersonPhoneProperty); 
ABMultiValueAddValueAndLabel(phoneNumbers, value, label, null); 
ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumbers, NULL); 

In einer der folgenden: ABMultiValueAddValueAndLabel(phoneNumbers, value, label, null) für jeden Wert, den Sie hinzufügen möchten.

+0

Anstelle von 'ABMultiValueCreateMutable (kABPersonPhoneProperty)', verwenden Sie 'ABMultiValueCreateMutable (kABMultiStringPropertyType)', sonst erhalten Sie "Auf der Konsole keine Callbacks vom Typ 3 zurückgeben" (und vermutlich schlimme Dinge, die später passieren). [Quelle] (http://iphonedevsdk.com/forum/iphone-sdk-development/23289-abnewpersonviewcontroller-crashes-when-scrolling.html) – Manav