如何在UISearchBar中搜索结果?

时间:2017-01-28 07:55:01

标签: swift uisearchbar

我想使用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中没有命名过滤器。我怎么能修好它?

1 个答案:

答案 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;
}