现在正在使用此代码从我的电话中获取联系人:
var addressBookReff: ABAddressBookRef = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue()
let people:NSArray = ABAddressBookCopyArrayOfAllPeople(addressBookReff).takeRetainedValue()
for person in people{
if let name:String = ABRecordCopyValue(person, kABPersonFirstNameProperty)?.takeRetainedValue() as? String {
let numbers:ABMultiValue = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()
if let number:String = ABMultiValueCopyValueAtIndex(numbers,0)?.takeRetainedValue() as? String {
self.arrOfDictContacts.addObject(["\(name)":"\(number)"])
}
}
}在这里,我正在使用kABPersonFirstNameProperty来获取名字。
我想知道联系人的全名!
如果我使用,kABPersonCompositeNameFormatFirstNameFirst就会以Int is not convertible toABPropertyId的形式获得错误
请原谅,如果这个问题很简单,而且有很多答案,我会发现他们中的任何一个都在为我工作,因为我不想调用额外的功能。
那么,我如何获得全名并将其添加到字典arrOfDictContacts中呢?
发布于 2015-09-09 22:14:27
在AddressBook API中,可以使用以下代码获得完整/复合名称:
let name = ABRecordCopyCompositeName(person).takeRetainedValue()在Contacts (对于iOS 9+)中,可以使用以下代码:
let name: String? = CNContactFormatter.string(from: contact, style: .fullName)https://stackoverflow.com/questions/32489675
复制相似问题