如何在Swift中获取联系人的全名

AAA*_*AAA 12 abaddressbook ios swift

现在我正在使用此代码从手机中获取联系人:

 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)"])
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在这里,我kABPersonFirstNameProperty用来获得名字.

我想得到联系人的全名!!!

如果我使用,kABPersonCompositeNameFormatFirstNameFirst那么我会得到错误Int is not convertible toABPropertyId

请原谅我如果这个问题很简单并有很多答案,我可以找到任何一个为我工作,因为我不想要额外的功能.

那么如何获取全名并将其添加到字典中 arrOfDictContacts呢?

erd*_*ser 29

在AddressBook API中,您可以使用以下代码获取完整/复合名称:

let name = ABRecordCopyCompositeName(person).takeRetainedValue()
Run Code Online (Sandbox Code Playgroud)

在Contacts API(适用于iOS 9+)中,您可以使用以下代码:

let name: String? = CNContactFormatter.stringFromContact(contact, style: .FullName)
Run Code Online (Sandbox Code Playgroud)