经过大量搜索,我遇到了一个(我相信)尚未明确解决的问题。
我的目标是从手机的联系人列表中提取电话号码。已授予权限。我使用这段代码从给定的联系人(变量“人”)中提取数据:
let unmanagedPhones: ABMultiValueRef = ABRecordCopyValue(person, kABPersonPhoneProperty).takeUnretainedValue()
println("unmanagedPhone: \(unmanagedPhones)")
对于我手机上的一些联系人,这将返回以下内容(我已经用#s 审查了一些数字):
unmanagedPhone: ABMultiValueRef 0x170468d00 有 2 个值 0: $!Mobile!$ (0x########) - 1 (###) ###-#### (0x170#45## #) 1: $!Work!$ (0x#########) - 1 (###) ###-#### (0x#70##3#a0)
但是,对于许多其他人来说,这会返回:
unmanagedPhone: ABMultiValueRef 0x170474a40 有 0 个值
我已经确认有问题的联系人至少有一个号码。在探索通讯录时,我无法弄清楚为什么有些联系人有效而有些则无效。有人对如何开始调试有任何建议或指导吗?谢谢大家!
在 Xcode 6.4、iOS 8 上使用 Swift。