如何实现对所有三个参数的搜索?在搜索organisationName时,一切都有效吗?非常感谢你!
func filterTableView(text:String) {
dataArray = initialDataAry.filter({ (mod) -> Bool in
return mod.organisationName
.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()
if dataArray.count != 0 {
dataArray = initialDataAry.filter({ (mod) -> Bool in
return mod.tel1Org
.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()
}
if dataArray.count != 0 {
dataArray = initialDataAry.filter({ (mod) -> Bool in
return mod.tel2Org
.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()
}
}
答案 0 :(得分:4)
检查一个过滤器内的所有三个字段:
func filterTableView(text:String) {
let search = text.lowercased()
dataArray = initialDataAry.filter({ (mod) -> Bool in
return mod.organisationName.lowercased().contains(search) ||
mod.tel1Org.lowercased().contains(search) ||
mod.tel2Org.lowercased().contains(search)
})
self.tableView.reloadData()
}
答案 1 :(得分:2)
您可以一次对所有字符串使用OR比较。这与添加所有字符串并比较结果字符串相同。
dataArray = initialDataAry.filter({ (mod) -> Bool in
let searchString = mod.organisationName + mod.tel1Org + mod.tel2Org
return searchString
.lowercased().contains(text.lowercased())
})
self.tableView.reloadData()