gpt4 book ai didi

swift - 使用特殊字符进行搜索

转载 作者:行者123 更新时间:2023-11-30 12:07:09 26 4
gpt4 key购买 nike

刚接触 swift 和一般编程。我有这个 searchBar 函数,它搜索输入的内容和 tableView 内容。我注意到它不适用于特殊字符。例如:我有一个 tableView,其中 Hon's 是文本的名称。当我在搜索栏上输入 Hon 时,Hon 会出现在 tableView 的列表中。但是,当我输入 Hon's (带有撇号 s)时,tableView 列出了所有内容,并且无法正确搜索。我预计只有 Hon 会出现。如何修复下面的代码?

public func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filteredData = all.filter({ (text) -> Bool in
let tmp: NSString = text as NSString
let range = tmp.range(of: searchText, options: .caseInsensitive)
return range.location != NSNotFound
})
if filteredData.count == 0 {
searchActive = false
} else {
searchActive = true
}
self.tableView.reloadData()
}

最佳答案

试试这个:

let text = "Hon's Shop"
let searchText = "Hon's"//works for "Hon" also
let found = text.lowercased().contains(searchText.lowercased())//returns true

因此您可以将过滤器修改为:

filteredData = all.filter({ (text) -> Bool in
return text.lowercased().contains(searchText.lowercased())
})
<小时/>

更新正如 Leo 提到的,你只能将 return 语句更改为:

return range != nil

但是使用我的建议你可以缩短代码!

关于swift - 使用特殊字符进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46548187/

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