首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS:从CNContact获取数字密钥

iOS:从CNContact获取数字密钥
EN

Stack Overflow用户
提问于 2015-10-30 15:46:02
回答 2查看 5.7K关注 0票数 5

我使用的是新的iOS 9的联系人框架,我不知道如何从CNContact上的phoneNumbers键中获取数字。

做一个NSLog的CNContact,我得到了这个输出:

代码语言:javascript
运行
复制
<CNContact: 0x14f57e680: identifier=1B39B156-A151-4905-9624-
DB117ACFBADC, givenName=John, familyName=Doe, 
organizationName=CompanyName, phoneNumbers=(
"<CNLabeledValue: 0x154297a40: identifier=3FEB6B0C-7179-4163-93E6-63C156C2F02B,
label=_$!<Mobile>!$_, value=<CNPhoneNumber: 0x155400e00: countryCode=us,
digits=1234567890>>"
), emailAddresses=(
), postalAddresses=(
)>

我能够像这样得到givenName和familyName的密钥:

代码语言:javascript
运行
复制
CNContact *contact;
[contact valueForKey:@"givenName"]
[contact valueForKey:@"familyName"]

如何获得phoneNumbers键下的数字的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-30 15:58:47

CNContact具有phoneNumbers属性。使用它来获取联系人的电话号码数组。

代码语言:javascript
运行
复制
CNContact *contact = ...;
NSArray <CNLabeledValue<CNPhoneNumber *> *> *phoneNumbers = contact.phoneNumbers;
CNLabeledValue<CNPhoneNumber *> *firstPhone = [phoneNumbers firstObject];
CNPhoneNumber *number = firstPhone.value;
NSString *digits = number.stringValue; // 1234567890
NSString *label = firstPhone.label; // Mobile
票数 16
EN

Stack Overflow用户

发布于 2017-05-29 10:51:06

我有一种更简单的方法,可以将每个电话号码从电话号码字典中分离出来,如果您从CNContactPickerViewController中选择单个联系人,请选择contact :-

代码语言:javascript
运行
复制
NSString * phoneHome;
NSString * phoneMobile;
NSString * phoneHomeFax;

for (NSString* phoneNumber in contact.phoneNumbers){
    NSString * phoneLabel = [phoneNumber valueForKey:@"label"];
    if ([phoneLabel rangeOfString:@"Home"].location != NSNotFound){
        phoneHome = [[phoneNumber valueForKey:@"value"] valueForKey:@"digits"];
    }else{
        phoneHome = @"N/A";
    }
    if ([phoneLabel rangeOfString:@"Mobile"].location != NSNotFound){
        phoneMobile = [[phoneNumber valueForKey:@"value"] valueForKey:@"digits"];
    }else{
        phoneMobile = @"N/A";
    }
    if ([phoneLabel rangeOfString:@"HomeFAX"].location != NSNotFound){
        phoneHomeFax = [[phoneNumber valueForKey:@"value"] valueForKey:@"digits"];
    }else{
        phoneHomeFax = @"N/A";
    }
}

NSLog(@"\n Home number = %@ \n Mobile number = %@ \n Home FAX number = %@",phoneHome,phoneMobile,phoneHomeFax);

这样我就能得到这个输出:-

家庭电话号码是4085553514移动电话号码是N/A家庭传真号码是4085553514

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33439846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档