JSONデータを表示するテーブルの検索バーを取得しようとしています。ここに私の検索バー機能は次のとおりです。テーブル検索機能が正しく動作するようにするには?
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filtered = arrRes.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.exercisesTableView.reloadData()
、ここでは
var arrRes: [[NSObject: AnyObject]] = []
データを保存するために、私の宣言された変数である私は、エラーを引っ張っています:
Cannot invoke 'filter' with an argument list of type '(([NSObject : AnyObject]) throws -> Bool) Expected an argument list of type '((Dictionary) throws -> Bool)''
これが何をしているイムは確かarrRes変数とそのデータ型にアクセスできますが、それを解決する方法がわかりません。
var filtered: [[NSObject: AnyObject]] = []
...しかし、それは知らなくても、確実に知ることは困難です:私はあなただけそうのように、arrRes
に一致するようにfiltered
のあなたの宣言を更新する必要があると信じている任意の洞察
どのように 'filtered'変数が宣言されていますか? – ganzogo
そのOPのコードで:filtered = arrRes.filter({(text) - > Bool – infernouk
あなたはそこにそれを設定していますが、どこに宣言されていますか?問題はこの間の型の不一致に関連しているようです'filtered'の出力が返されるので、 'filtered'変数の型を知るのに役立ちます。 – ganzogo