私の検索バーでより良い結果をフィルタリングしたい。複数の単語、iOS、Swiftのフィルタ検索
私は私の配列が含まれています:
[["object": "Ball", "color": "Red"], ["object": "Ball", "color": "Blue"], ["object": "Square", "color": "Red"]]
私はそれだけでオブジェクトを表示したい、私はボールを検索する場合、すべてのボールが表示されますが、私はレッド(ボール赤)を追加するとき、それはまた、正方形を示しボールとレッドの両方の単語が含まれていて、ボールまたはレッドという単語の1つだけを含むものは表示されません。これはできますか?
以下は私のコードです。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
let splitText = searchText.split(separator: " ")
filteredVehicles = posts.filter {
if let s = $0["object"] as? String, splitText.index(of: Substring(s)) != nil {
return true
}
if let s = $0["color"] as? String, splitText.index(of: Substring(s)) != nil {
return true
}
return false
}
}
あなたの2つの 'if'は" aとbの場合 "を行い、関係がない場合は連続しません。 – Larme
このオブジェクトを試してください.filter {($ 0 ["object"] ?. contains( "Square")?? false)&&($ 0 ["color"]?contains( "Red")?? false)} – adarshaU