如何更新:(COCOA/OSX)ABPerson/ABMultiValue(电话号码)?

如何更新:(COCOA/OSX)ABPerson/ABMultiValue(电话号码)?,cocoa,macos,addressbook,abaddressbook,abmultivalue,Cocoa,Macos,Addressbook,Abaddressbook,Abmultivalue,II尝试更改ABPerson/ABMultiValue(电话号码)的值 要更新这些吗 ABAddressBook *ab = [ABAddressBook sharedAddressBook]; NSArray *persons = [ab people]; int j=[persons count]; for (int i=0; i<j; i++) { ABPerson *person = [persons objectAtIndex:i];

II尝试更改ABPerson/ABMultiValue(电话号码)的值

要更新这些吗

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
}
ABAddressBook*ab=[ABAddressBook sharedAddressBook];
NSArray*人员=[ab人员];
int j=[人数];
对于(int i=0;i尝试调用:

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

为每个要添加的值添加一个:
ABMultiValueAddValueAndLabel(phoneNumbers,value,label,null)

使用
ABMultiValueCreateMutable(kABPersonPhoneProperty)
,而不是
ABMultiValueCreateMutable(kABMultiStringPropertyType)
,否则您将得到“无法返回3的类型回调”打印在控制台上(可能以后会发生不好的事情)。