Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了匹配CNcontact和数字寻找朋友Swift 3大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用数字构建iPhone应用程序查找朋友功能

我可以从Digits获得匹配的digitUserID列表.

现在我正在努力匹配UserID和CNContacts.

请指出任何例子来处理这个问题.

作为更新:

do 
{
    try contactStore.enumerateContactsWithFetchrequest(CNContactFetchrequest(keysToFetch: [CNContactGivenNameKey,CNContactFamilyNameKey,CNContactMiddlenameKey,CNContactEmailAddressesKey,CNContactPhonenumbersKey])) {
        (contact,cursor) -> Void in

        self.results.append(contact)
    }
}
catch{
    print("Handle the error please")
}

以上我设法得到了所有的联系,但我不知道如何将电话号码过滤器传入此并获得与CNContact的精确联系人匹配

解决方法

理想情况下,人们会预期CNContactFetchrequest的谓词来完成这项工作,但是(仍然; argh)只接受用CNContact定义的一个狭窄的谓词列表(例如CNContact preDicateForContacts(matchingName :)或preDicateForContacts(withIdentifiers :).它不会’甚至接受基于块的NSPreDicate.

所以,你必须枚举,自己寻找比赛,例如

let request = CNContactFetchrequest(keysToFetch: [
    CNContactGivenNameKey as CNKeyDescriptor,CNContactFamilyNameKey as CNKeyDescriptor,CNContactMiddlenameKey as CNKeyDescriptor,CNContactEmailAddressesKey as CNKeyDescriptor,CNContactPhonenumbersKey as CNKeyDescriptor
])

do {
    try contactStore.enumerateContacts(with: request) { contact,stop in
        for phone in contact.phonenumbers {
            // look at `phone.value.stringvalue`,e.g.

            let phonenumberDigits = String(phone.value.stringvalue.characters.filter { String($0).rangeOfCharacter(from: CharacterSet.decimalDigits) != nil })

            if phonenumberDigits == "8885551212" {
                self.results.append(contact)
                return
            }
        }
    }
} catch let enumerateError {
    print(enumerateError.localizedDescription)
}

关于匹配“数字用户ID”,我不知道该标识符是什么(它是联系人框架标识符还是数字自己的标识符?).

大佬总结

以上是大佬教程为你收集整理的匹配CNcontact和数字寻找朋友Swift 3全部内容,希望文章能够帮你解决匹配CNcontact和数字寻找朋友Swift 3所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。