1

我试图弄清楚电话号码的类型(家庭、手机、传真等),但我不知道如何使用ABMultiValueRef. 我可以通过以下方式获取类型:

CFStringRef cfLabel = ABMultiValueCopyLabelAtIndex(multiValueRef, i);

NSString *label = (__bridge NSString*) cfLabel;

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

CFRelease(cfLabel);

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

4

2 回答 2

2

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

kABPersonPhoneMobileLabel
kABPersonPhoneIPhoneLabel
kABPersonPhoneMainLabel
kABPersonPhoneHomeFAXLabel
kABPersonPhoneWorkFAXLabel
kABPersonPhoneOtherFAXLabel
kABPersonPhonePagerLabel

尤其kABPersonPhoneMobileLabel具有_$!<Mobile>!$_价值。

请参阅ABPerson 参考以获取有关 AddressBook 框架定义的这些和其他常量的更多信息。

于 2012-11-05T15:31:33.980 回答
0

您需要使用电话号码属性标签:http: //developer.apple.com/library/ios/documentation/AddressBook/Reference/ABPersonRef_iPhoneOS/Reference/reference.html#//apple_ref/doc/uid/TP40007210-CH991- SW41

于 2012-11-05T15:40:44.560 回答