2011-11-28 436 views
1

我正在开发一个存储通讯簿中的联系人的应用程序。我想补充我在执行备注字段,我知道,添加此情况下要使用代码中的电话号码:如何给iphone联系人添加备注?

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相当于注释字段?

感谢

回答

1

的说明财产,由kABNoteProperty标识,是一个单值属性,而不是一个多值属性,所以没有相应的标签。电话属性是多值的:它可以同时包含多个不同的值,因此您需要标签来区分这些值。 note属性就像名字或姓氏属性 - 一次只能有一个值。使用ABRecordSetValue()这个:

bool ABRecordSetValue (
    ABRecordRef record, 
    ABPropertyID property, 
    CFTypeRef value, 
    CFErrorRef *error 
); 
1

没有的kABWorkLabelkABNoteProperty等同,因为音符属性是一个字符串,而不是一个多值。

CFErrorRef error; 
if (!ABRecordSetValue(contact, kABNoteProperty, (__bridge CFStringRef)@"hello world", &error)) { 
    // handle error 
} 
+0

好吧,所以假设我有一个NSString,我想添加作为一个笔记,如何添加它?我对iPhone开发很陌生? – user1051935

+0

我编辑了我的答案。 –

+0

不知道这是不是xcode5,但'kABNoteProperty'为我引发一个错误,它应该是'kABPersonNoteProperty'。 –

相关问题