Ich möchte meine Ergebnisse besser in meiner Suchleiste filtern.Suche nach mehreren Wörtern filtern, iOS, Swift
Ich habe meine Array enthält:
[["object": "Ball", "color": "Red"], ["object": "Ball", "color": "Blue"], ["object": "Square", "color": "Red"]]
Wenn ich Ball-Suche alle Kugeln erscheinen, aber wenn ich hinzufügen Red (Ball Red) dann das Quadrat zeigt auch, ich will es nur ein Objekt zu zeigen, das enthält beide Wörter Ball und Rot, nicht alle, die nur eines der Wörter Ball oder Rot enthalten. Kann das gemacht werden?
Unten ist mein Code.
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
}
}
Ihre zwei 'if', tun ein" wenn a und b ", nicht zu aufeinander folgenden, wenn keine Beziehung. – Larme
versuche dieses objects.filter {($ 0 ["object"]?. Enthält ("Square") ?? false) && ($ 0 ["color"]? Enthält ("Red") ?? false)} – adarshaU