我想从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中访问它们吗?谢谢!
不幸的是,由于它们是私有的,您无法获得它们。
let numberValue = number.value let countryCode = numberValue.valueForKey("countryCode") as? String let digits = numberValue.valueForKey("digits") as? String
这行得通,但是如果您在此行中做某事, 您的应用很可能会被拒绝。
您可以在这里看到所有可以使用的好东西。
如果您不打算将应用程序上载到商店,则上述解决方案是可以的,否则我会坚持使用某种正则表达式,因为它知道将来可能会崩溃:
countryCode=(\w{2}),.*digits=(.+)>$