我正在开发一个将联系人存储在地址簿中的应用程序。我想在我的实现中添加备注字段,我知道要添加一个电话号码,这是要使用的代码:
ABMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiRealPropertyType);
ABMultiValueAddValueAndLabel(multiPhone, (__bridge_retained CFStringRef)Tel, kABWorkLabel, NULL);
ABMultiValueAddValueAndLabel(multiPhone, (__bridge_retained CFStringRef)Fax, kABPersonPhoneWorkFAXLabel, NULL);
ABRecordSetValue(contact, kABPersonPhoneProperty, multiPhone, nil);
CFRelease(multiPhone);
我知道kABPersonPhoneProperty
的等价物是kABNoteProperty
,但注释字段的等效值是kABWorkLabel
吗?
由于
答案 0 :(得分:1)
kABWorkLabel
没有kABNoteProperty
的等价物,因为note属性是单个字符串,而不是多值。
CFErrorRef error;
if (!ABRecordSetValue(contact, kABNoteProperty, (__bridge CFStringRef)@"hello world", &error)) {
// handle error
}
答案 1 :(得分:1)
由kABNoteProperty
标识的note属性是单值属性,而不是多值属性,因此没有相应的标签。 phone属性是多值的:它可以同时包含多个不同的值,因此您需要使用标签来区分这些值。 note属性类似于名字或姓氏属性 - 这些属性一次只能有一个值。请使用ABRecordSetValue()
:
bool ABRecordSetValue (
ABRecordRef record,
ABPropertyID property,
CFTypeRef value,
CFErrorRef *error
);