一尘不染

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

swift

我想从iOS 9上的CNContact获取国家代码和电话号码。我尝试了很多事情,但找不到方法。我获得的最佳结果是打印:

<CNPhoneNumber: 0x7f886389a140: countryCode=us, digits=5555648583>

这是我的方法:

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

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


阅读 617

收藏
2020-07-07

共1个答案

一尘不染

不幸的是,由于它们是私有的,您无法获得它们。

let numberValue = number.value

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

这行得通,但是如果您在此行中做某事, 您的应用很可能会被拒绝。

您可以在这里看到所有可以使用的好东西。

如果您不打算将应用程序上载到商店,则上述解决方案是可以的,否则我会坚持使用某种正则表达式,因为它知道将来可能会崩溃:

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