Objective-C - ABMultiValueRef获取类型(ABAddressBook)

时间:2012-11-05 14:28:44

标签: objective-c ios cocoa-touch cocoa abaddressbook

我正在试图找出电话号码的类型(家庭,移动电话,传真等),但我无法弄清楚如何使用ABMultiValueRef。我可以这样做:

CFStringRef cfLabel = ABMultiValueCopyLabelAtIndex(multiValueRef, i);

NSString *label = (__bridge NSString*) cfLabel;

NSLog(@"%@", label); // prints i.e "_$!<Mobile>!$_"

CFRelease(cfLabel);

因此,当它打印_$!<Mobile>!$_时,我可以做一些IF逻辑来检查标签是否等于_$!<Mobile>!$_但是如果Apple决定更改Mobile标签的值,将来怎么办?对我来说,拥有一个我可以检查的常数会感觉好多了。但我找不到任何使用?

2 个答案:

答案 0 :(得分:2)

这些CFStringRef常量在AddressBook框架中定义(准确地说是ABPerson.h):

kABPersonPhoneMobileLabel
kABPersonPhoneIPhoneLabel
kABPersonPhoneMainLabel
kABPersonPhoneHomeFAXLabel
kABPersonPhoneWorkFAXLabel
kABPersonPhoneOtherFAXLabel
kABPersonPhonePagerLabel

特别是,kABPersonPhoneMobileLabel具有_$!<Mobile>!$_值。

有关这些以及AddressBook框架定义的其他常量的更多信息,请参阅ABPerson reference

答案 1 :(得分:0)