gpt4 book ai didi

ios - 使用 ContactsUI 快速获取所有联系电话号码

转载 作者:行者123 更新时间:2023-11-29 13:52:39 25 4
gpt4 key购买 nike

我使用 ContactsUI 获取所有联系人并在 tableview 中显示它们。在我的方法中,我只获取了一个联系人的电话号码。我的问题是如何在我的方法中获取所有联系人的电话号码。

我的模型和获取方法:

import Foundation
import UIKit
import Contacts

class ContactsModel : NSObject {
let givenName:String
let familyName:String
let phoneNumber:String
let emailAddress:String
var identifier: String
var image:UIImage

init(givenName:String,familyName:String,phoneNumber:String,emailAddress:String,identifier:String,image:UIImage) {
self.givenName = givenName
self.familyName = familyName
self.phoneNumber = phoneNumber
self.emailAddress = emailAddress
self.identifier = identifier
self.image = image
}

class func generateModelArray() -> [ContactsModel]{
let contactStore = CNContactStore()
var contactsData = [ContactsModel]()
let key = [CNContactGivenNameKey,CNContactFamilyNameKey,CNContactImageDataKey,CNContactThumbnailImageDataKey,CNContactPhoneNumbersKey,CNContactEmailAddressesKey] as [CNKeyDescriptor]
let request = CNContactFetchRequest(keysToFetch: key)
try? contactStore.enumerateContacts(with: request, usingBlock: { (contact, stoppingPointer) in
let givenName = contact.givenName
let familyName = contact.familyName
let emailAddress = contact.emailAddresses.first?.value ?? ""
let phoneNumber = contact.phoneNumbers.first?.value.stringValue ?? ""
let identifier = contact.identifier
var image = UIImage()
if contact.thumbnailImageData != nil{
image = UIImage(data: contact.thumbnailImageData!)!

}else if contact.thumbnailImageData == nil ,givenName.isEmpty || familyName.isEmpty{
image = UIImage(named: "usertwo")!
}
contactsData.append(ContactsModel(givenName: givenName, familyName: familyName, phoneNumber: phoneNumber as String, emailAddress: emailAddress as String, identifier: identifier, image: image))
})
return contactsData
}
}

最佳答案

与其将其作为字符串,不如使用字符串数组。

class ContactsModel : NSObject {
let givenName: String
let familyName: String
let phoneNumber: [String]
let emailAddress: String
var identifier: String
var image: UIImage

init(givenName:String, familyName:String, phoneNumber:[String], emailAddress:String, identifier:String, image:UIImage) {
self.givenName = givenName
self.familyName = familyName
self.phoneNumber = phoneNumber
self.emailAddress = emailAddress
self.identifier = identifier
self.image = image
}

class func generateModelArray() -> [ContactsModel]{
let contactStore = CNContactStore()
var contactsData = [ContactsModel]()
let key = [CNContactGivenNameKey,CNContactFamilyNameKey,CNContactImageDataKey,CNContactThumbnailImageDataKey,CNContactPhoneNumbersKey,CNContactEmailAddressesKey] as [CNKeyDescriptor]
let request = CNContactFetchRequest(keysToFetch: key)
try? contactStore.enumerateContacts(with: request, usingBlock: { (contact, stoppingPointer) in
let givenName = contact.givenName
let familyName = contact.familyName
let emailAddress = contact.emailAddresses.first?.value ?? ""
let phoneNumber: [String] = contact.phoneNumbers.map{ $0.value.stringValue }
let identifier = contact.identifier
var image = UIImage()
if contact.thumbnailImageData != nil{
image = UIImage(data: contact.thumbnailImageData!)!

}else if contact.thumbnailImageData == nil ,givenName.isEmpty || familyName.isEmpty{
image = UIImage(named: "usertwo")!
}
contactsData.append(ContactsModel(givenName: givenName, familyName: familyName, phoneNumber: phoneNumber, emailAddress: emailAddress as String, identifier: identifier, image: image))
})
return contactsData
}
}

关于ios - 使用 ContactsUI 快速获取所有联系电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58889378/

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