我知道ios swift有一个Contacts Framework,我可以在其中获取联系人,但我找不到任何方法来获取所有联系人,我可以访问该数组中的每个联系人.所有获取联系人的方法似乎都需要某种条件.有什么方法可以让我把所有的联系人联系在一起吗?
谢谢
我知道ios swift有一个Contacts Framework,我可以在其中获取联系人,但我找不到任何方法来获取所有联系人,我可以访问该数组中的每个联系人.所有获取联系人的方法似乎都需要某种条件.有什么方法可以让我把所有的联系人联系在一起吗?
谢谢
对Contact Framework问题的许多回答都建议迭代各种容器(帐户).然而,苹果的文档将"统一联系人"描述为
代表同一个人的不同帐户中的联系人可能会自动链接在一起.链接联系人在OS X和iOS应用程序中显示为统一联系人.统一联系人是合并到一个联系人中的一组链接联系人的内存临时视图.
默认情况下,联系人框架返回统一联系人.每个获取的统一联系人(CNContact)对象都有自己的唯一标识符,该标识符不同于链接联系人集中任何单个联系人的标识符.统一联系人的重新蚀刻应使用其标识符完成.
因此,在单个数组中获取联系人列表(部分,基于键)的最简单方法如下:
var contacts = [CNContact]()
let keys = [CNContactFormatter.descriptorForRequiredKeys(for: .fullName)]
let request = CNContactFetchRequest(keysToFetch: keys)
let contactStore = CNContactStore()
do {
try contactStore.enumerateContacts(with: request) {
(contact, stop) in
// Array containing all unified contacts from everywhere
contacts.append(contact)
}
}
catch {
print("unable to fetch contacts")
}