gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 05:25:26 24 4
gpt4 key购买 nike

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

 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 ?

最佳答案

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

let name = ABRecordCopyCompositeName(person).takeRetainedValue()

在联系人 API(适用于 iOS 9+)中,您可以使用此代码:

let name: String? = CNContactFormatter.string(from: contact, style: .fullName)

关于ios - 如何在 Swift 中获取联系人全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32489675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com