テーブルビューと検索バーがプログラムで追加されています。フィルタリングされた結果を表示したいので、todoアクティビティのタイトルが含まれている配列(todoTitleという名前)を作成しました(別のオブジェクトがあり、そのプロパティの1つがtitleです)。私はupdateSearchResultsメソッドを使用し、その中でフィルタメソッドを使用して、正しいtodosを返します。配列が空でないことを確認するために、各配列の内部にtodosを出力するコードを関数の中に記述します。ここupdateSearchResultsの内側に私のコードがある(のために:)機能フィルタリングされた配列が空である理由は誰にでも分かりますか?
//filtering through todos' titles
filteredTodos = self.todosTitle.filter({ (title: String) -> Bool in
if title.lowercased().contains((self.searchController.searchBar.text?.lowercased())!) {
return true
} else {
print ("S \(todosTitle)")
print ("t \(title)")
print (filteredTodos)
return false
}
})
//updating the results TableView
self.resultsController.tableView.reloadData()
}
``
todosTitle配列が空ではないので、私のfilteredTodosが空である理由私は理解していません。誰にもこのようなことが起こる理由は何ですか?
から期待した文字列を取得していることを確認するために、検索テキストのあなたの割り当てを分離。 –
self.searchController.searchBar.textを出力する必要がありますか?コンソールとチェック。それは別のことになるだろう、それは理由かもしれない。 – adev
'filteredTodos'はフィルタが返るまでの結果で設定されません。 – PeejWeej