我使用以下代码在我的应用中搜索tableviewcontroller。 目前搜索字符串与我的表格列表中的餐馆名称匹配。我希望与我的代码匹配/搜索其他字符串,位置。如何向此功能添加位置
餐馆名称变量 - restaurant.name,
餐厅位置变量 - restaurant.location
func filterContentForSearchText(searchText: String) {
searchResults = restaurants.filter({ ( restaurant: Restaurant) -> Bool in let nameMatch = restaurant.name.rangeOfString(searchText, options:
NSStringCompareOptions.CaseInsensitiveSearch)
return nameMatch != nil
})
}
func updateSearchResultsForSearchController(searchController: UISearchController) {
let searchText = searchController.searchBar.text
filterContentForSearchText(searchText!)
tableView.reloadData()
}
如何在我的过滤方法中添加此附加参数?
答案 0 :(得分:4)
试试这个。
func filterContentForSearchText(searchText: String) {
searchResults = restaurants.filter({ ( restaurant: Restaurant) -> Bool in
let nameMatch = restaurant.name.rangeOfString(searchText, options:
NSStringCompareOptions.CaseInsensitiveSearch)
let locationMatch = restaurant.location.rangeOfString(searchText, options:
NSStringCompareOptions.CaseInsensitiveSearch)
return (nameMatch != nil || locationMatch != nil)
})
}
答案 1 :(得分:2)
你可以这样做
func filterContentForSearchText(searchText: String) {
searchResults = restaurants.filter({( restaurant: Restaurant) -> Bool in
return restaurant.location.lowercaseString.containsString(searchText.lowercaseString) || restaurant.name.lowercaseString.containsString(searchText.lowercaseString)
})
tableView.reloadData()
}
委托方法
func updateSearchResultsForSearchController(searchController: UISearchController) {
filterContentForSearchText(searchController.searchBar.text!)
}
此方法可以帮助您更好地搜索