iOS Contacts Framework:如何通过电话号码获取联系人

iOS Contacts Framework:如何通过电话号码获取联系人,第1张

概述我有一个自定义用户类,用于存储用户的电话号码. class User { let phoneNumber: String} 如何从用户联系簿获取相应的联系人? 我尝试了以下但似乎这只适用于联系人名称,因为我总是得到零: let predicate = CNContact.predicateForContactsMatchingName(userInstance.phoneNumber)le 我有一个自定义用户类,用于存储用户的电话号码.

class User {  let phoneNumber: String}

如何从用户联系簿获取相应的联系人?

我尝试了以下但似乎这只适用于联系人名称,因为我总是得到零:

let predicate = CNContact.predicateForContactsMatchingname(userInstance.phoneNumber)let keysToFetch = [CNContactFormatter.descriptorForrequiredKeysForStyle(.Fullname),CNContactPhoneNumbersKey]// Is already permittedtry! CNContactStore().unifIEdContactsMatchingPredicate(predicate,keysToFetch: keysToFetch).first  // This returns nil

我在文档中搜索过但我找不到合适的解决方案.

解决方法
let contactStroe = CNContactStore()        let keysToFetch = [            CNContactFormatter.descriptorForrequiredKeysForStyle(.Fullname),CNContactEmailAddressesKey,CNContactPhoneNumbersKey,CNContactimageDataAvailableKey,CNContactthumbnailImageDataKey]contactStroe.requestAccessForEntityType(.Contacts,completionHandler: { (granted,error) -> VoID inif granted {                let predicate = CNContact.predicateForContactsInContainerWithIDentifIEr(contactStroe.defaultContainerIDentifIEr())                var contacts: [CNContact]! = []                do {                    contacts = try contactStroe.unifIEdContactsMatchingPredicate(predicate,keysToFetch: keysToFetch)// [CNContact]                }catch {                }for contact in contacts {                    var phonestr = ""                    var nameStr = ""                    var number: CNPhoneNumber!                    if contact.phoneNumbers.count > 0 {                        number = contact.phoneNumbers[0].value as! CNPhoneNumber                        phonestr = number.stringValue.stringByReplacingOccurrencesOfString("-",withString: "")                    }                    nameStr = contact.familyname + contact.givenname                    if !nameStr.isEmpty && !phonestr.isEmpty {                        let frIEnd = YFrIEndsModel()                        frIEnd.name = nameStr                        frIEnd.phone = phonestr                        self.frIEndArr.append(frIEnd)                    }                }        })

这是我的方式,你可以进行测试

总结

以上是内存溢出为你收集整理的iOS Contacts Framework:如何通过电话号码获取联系人全部内容,希望文章能够帮你解决iOS Contacts Framework:如何通过电话号码获取联系人所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1015563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存