首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Swift中获取联系人的全名

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

Stack Overflow用户
提问于 2015-09-09 21:46:11
回答 1查看 7.2K关注 0票数 15

现在正在使用此代码从我的电话中获取联系人:

代码语言:javascript
复制
 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中呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-09 22:14:27

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

代码语言:javascript
复制
let name = ABRecordCopyCompositeName(person).takeRetainedValue()

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

代码语言:javascript
复制
let name: String? = CNContactFormatter.string(from: contact, style: .fullName)
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32489675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档