当前位置:  开发笔记 > IOS > 正文

iOS 9:获取CNContact国家/地区代码和电话号码

如何解决《iOS9:获取CNContact国家/地区代码和电话号码》经验,为你挑选了2个好方法。

我想从iOS 9上的CNContact获取国家代码和电话号码.我尝试过很多东西,但找不到办法.我取得的最好成绩是打印:


我是这样做的:

func contactPicker(picker: CNContactPickerViewController, didSelectContact contact: CNContact) {
    print(contact.phoneNumbers.count)
    for number: CNLabeledValue in contact.phoneNumbers {
        print(number.value)
    }
}

我想要的是countryCode和数字的值.有任何想法如何在Swift中访问它们?谢谢!



1> fpg1503..:

不幸的是,由于他们是私人的,你无法得到他们.

let numberValue = number.value

let countryCode = numberValue.valueForKey("countryCode") as? String
let digits = numberValue.valueForKey("digits") as? String

这有效,但如果您在此行中执行某些操作,您的应用很可能会被拒绝.

你可以看到你可以在这里使用的所有好东西.

如果您不打算将应用程序上传到商店,那么上面的解决方案就可以了,否则我会坚持使用某种正则表达式,因为它知道将来会破坏:

countryCode=(\w{2}),.*digits=(.+)>$


它违反了审核指南2.5。Objective-C是一种动态语言,因此您几乎可以访问任何想要的东西。他所查询的值是未记录的,并且不应该在生产代码中使用,因为它可能会在将来的版本中更改,而不会发出任何警告。

2> 小智..:

Objective-C:

[number.value valueForKey:@"countryCode"]

Swift:

number.value.valueForKey("countryCode") as? String

valueForKey 不是私有的,您的应用程序不会被拒绝。

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有