gpt4 book ai didi

ios - 搜索栏搜索号码,而不仅仅是联系人姓名

转载 作者:行者123 更新时间:2023-11-30 11:10:11 24 4
gpt4 key购买 nike

我目前正在尝试在我的联系人列表之间进行搜索,但我所能找到的只是姓名和姓氏,而不是电话号码。这是我的代码:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchBar.text == nil || searchBar.text == "" {
inSearchMode = false
view.endEditing(true)
self.tableView.reloadData()
} else {
inSearchMode = true
filteredData = contactList.filter {
$0.givenName.range(of: searchBar.text!, options: [.caseInsensitive, .diacriticInsensitive ]) != nil ||
$0.familyName.range(of: searchBar.text!, options: [.caseInsensitive, .diacriticInsensitive ]) != nil ||
$0.phoneNumbers.range(of: searchBar.text!, options: [.caseInsensitive, .diacriticInsensitive ]) != nil
}
self.tableView.reloadData()
}
}

并且给我错误:

Value of type '[CNLabeledValue]' has no member 'range'

如何解决?

最佳答案

CNContactphoneNumbers 属性不是 String。它是一个 CNLabeledValue 对象数组。

您需要扫描数组,从每个 CNLabeledValue 中提取 CNPhoneNumber。然后获取电话号码的stringValue。最后,对该字符串值使用 range(of:)

更改:

$0.phoneNumbers.range(of: searchBar.text!, options: [.caseInsensitive, .diacriticInsensitive ]) != nil

至:

$0.phoneNumbers.contains { $0.value.stringValue.range(of: searchBar.text!, options: [.caseInsensitive, .diacriticInsensitive ]) != nil }

请注意,第一个 $0contactList 数组中的 CNContact。第二个 $0 是联系人 phoneNumbers 数组中的 CNLabeldValue

关于ios - 搜索栏搜索号码,而不仅仅是联系人姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52262530/

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