我发现的大部分内容都是使用地址簿而不是新的联系人。我试图让所有用户联系人的姓名和电话号码显示在应用程序的表格视图中。然后将所有这些数字放入一个 API 中,该 API 可以交叉引用他们是否已经拥有帐户,这样我就可以在这些数字旁边显示一个“添加朋友”按钮。是否有一种快速简便的方法来请求许可,然后使用 Swift3 将所有联系人放入一个数组并与 iOS9 及更高版本兼容?
我不是要查找或添加联系人,我只想要数组中的所有数字和姓名
我发现的大部分内容都是使用地址簿而不是新的联系人。我试图让所有用户联系人的姓名和电话号码显示在应用程序的表格视图中。然后将所有这些数字放入一个 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
}
}