2

我正在尝试使用 CNContact 获取我的联系人的电话号码,我希望将该号码作为其 digits 的简单字符串,例如"04xxxxxxxx"但我能得到的最接近的是以下。(“联系人”是 CNContact 类型)

contact.phoneNumbers[0].value
\\Which prints: <CNPhoneNumber: 0x13560a550: countryCode=au, digits=04xxxxxxxx>

我尝试了所有明显的东西,而不是那么明显的东西,谢谢

4

3 回答 3

2

如果有人有更合法的解决方案,请发布它,否则这种相当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))
于 2015-11-26T08:27:27.793 回答
0

获取数字值如下:

let number = value.valueForKey("digits") as! String

从iOS9:

let number = value.stringValue

根据苹果关于 CNPhoneNumber 的文档:

stringValue 属性 电话号码的字符串值。(只读)

声明 SWIFT var stringValue: String { get }

于 2016-05-26T13:52:29.433 回答
0

使用此类别,您现在可以通过 swift 访问电话号码。不要忘记将此文件包含在桥接头中

@implementation  CNPhoneNumber (SwiftSupport)
- (NSString*)toString {
    return self.stringValue;
}

@end
于 2015-12-17T17:09:49.017 回答