我想使用UISearchBar搜索结果以获取JSON数组值。
我正在使用以下代码:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
filtered = data.filter ({ (text) -> Bool in
let tmp: NSString = text
let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
return range.location != NSNotFound
})
if(filtered.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.customerareatableview.reloadData()
}
错误将显示在NSSArray
中没有命名过滤器。我怎么能修好它?
答案 0 :(得分:0)
NSSArray does not have named filter
表示data
类型为NSArray
您最好将dada
格式化为Array
而不是NSArray
(如何过滤NSArray - > How to filter NSArray in Swift?)
你最好在你的代码中使用新的Array,String,....而不是NS
个对象
var data:[String] = [“a”,“b”]
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
filtered = data.filter ({ (text) -> Bool in
return searchText.range(of: string, options: .caseInsensitive) != nil
})
[...]
这有点不对劲。当你没有得到任何结果意味着你没有搜索。也有一个错字,你可以得到一个空的结果。更好的是:
if searchText.isEmpty {
searchActive = false;
} else {
searchActive = true;
}