【发布时间】:2016-12-06 08:24:52
【问题描述】:
所以我正在过滤数据(所有字符串),并希望显示以下内容:
- 第一个字母包含您的搜索的搜索词(例如。搜索时 'Br' 我想查看所有以 'Br' 开头的词,例如 Break , 坏了,...)
- 字符串中包含单词的搜索词(例如,搜索“Br”时会显示所有包含“br”的单词,例如“groundbreaker”)。
我让他们两个分开工作(见let found和let foundMore),但现在我想合并他们(首先显示第一个字母包含您的搜索的搜索词,在那些之后其中字符串包含单词)。尝试使用加号,但它给出了以下错误
二元运算符“+”不能应用于两个“范围?”操作数
extension SearchResultsController : UISearchResultsUpdating {
func updateSearchResultsForSearchController(searchController: UISearchController) {
self.tableView.reloadData()
let searchBar = searchController.searchBar
let target = searchBar.text!
self.filteredData = self.originalData.filter {
s in
let options = NSStringCompareOptions.AnchoredSearch
let found = s.rangeOfString(target, options: options)
let optionsMore = NSStringCompareOptions.CaseInsensitiveSearch
let foundMore = s.rangeOfString(target, options: optionsMore)
let allTogether = found + foundMore
return (allTogether != nil)
}
self.tableView.reloadData()
}
}
【问题讨论】:
标签: ios swift search filter range