我正在尝试使用 CNContact 获取我的联系人的电话号码,我希望将该号码作为其 digits 的简单字符串,例如"04xxxxxxxx"
但我能得到的最接近的是以下。(“联系人”是 CNContact 类型)
contact.phoneNumbers[0].value
\\Which prints: <CNPhoneNumber: 0x13560a550: countryCode=au, digits=04xxxxxxxx>
我尝试了所有明显的东西,而不是那么明显的东西,谢谢
如果有人有更合法的解决方案,请发布它,否则这种相当hacky的方法有效:
let value = String(contact.phoneNumbers[0].value)
let start = value.rangeOfString("digits=")!.endIndex
let end = value.endIndex.predecessor()
let number = value.substringWithRange(Range<String.Index>(start: start, end: end))
获取数字值如下:
let number = value.valueForKey("digits") as! String
从iOS9:
let number = value.stringValue
根据苹果关于 CNPhoneNumber 的文档:
stringValue 属性 电话号码的字符串值。(只读)
声明 SWIFT var stringValue: String { get }
使用此类别,您现在可以通过 swift 访问电话号码。不要忘记将此文件包含在桥接头中
@implementation CNPhoneNumber (SwiftSupport)
- (NSString*)toString {
return self.stringValue;
}
@end