获取所有用户';s的联系电话号码Swift3/iOS9+



我发现的大多数东西都是使用AddressBook而不是新的Contacts。我正在尝试获取所有用户联系人的姓名和电话号码,以便在应用程序的表视图中显示。然后将所有这些数字放入API中,该API将交叉引用其中是否有帐户,这样我就可以在有帐户的旁边显示"添加好友"按钮。有没有一种快速简便的方法可以申请许可,然后使用Swift3将所有联系人放入一个阵列中,并与iOS9及更新版本兼容?

我不想找到或添加联系人,我只想把所有的号码和名字都放在一个数组中

下面的两个片段应该会有所帮助。我已经双重声明了存储,如果在同一范围内使用这两个片段,则不需要执行此操作。。。

获得许可:

let store = CNContactStore()
store.requestAccess(for: .contacts) { (isGranted, error) in
// Check the isGranted flag and proceed if true
}

阅读地址簿(我随机提供了一些密钥,但你可以选择任何适用于你的密钥。):

let contactStore = CNContactStore()
let keys = [CNContactPhoneNumbersKey, CNContactFamilyNameKey, CNContactGivenNameKey, CNContactNicknameKey, CNContactPhoneNumbersKey]
let request1 = CNContactFetchRequest(keysToFetch: keys  as [CNKeyDescriptor])
try? contactStore.enumerateContacts(with: request1) { (contact, error) in
for phone in contact.phoneNumbers {
// Whatever you want to do with it
}
}

最新更新