加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

匹配CNcontact和数字寻找朋友Swift 3

发布时间:2020-12-14 04:48:17 所属栏目:百科 来源:网络整理
导读:我正在尝试使用数字构建iPhone应用程序查找朋友功能 我可以从Digits获得匹配的digitUserID列表. 现在我正在努力匹配UserID和CNContacts. 请指出任何例子来处理这个问题. 作为更新: do { try contactStore.enumerateContactsWithFetchRequest(CNContactFetch
我正在尝试使用数字构建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”,我不知道该标识符是什么(它是联系人框架标识符还是数字自己的标识符?).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读