검색 창에서 검색 결과를 더 잘 필터링하고 싶습니다.여러 단어로 된 검색, iOS, Swift
내가 가진 내 배열이 포함
[["object": "Ball", "color": "Red"], ["object": "Ball", "color": "Blue"], ["object": "Square", "color": "Red"]]
내가 볼을 검색 할 때 모든 공 나타납니다,하지만 난 레드 (볼 적색) 다음 또한 사각형을 보여줍니다 추가 할 때, 난 단지 객체를 보여주기 위해 원하는 볼과 레드라는 단어가 모두 포함 된 단어는 볼이나 레드라는 단어 중 하나만 포함하는 단어를 모두 표시하지 않습니다. 이 일을 할 수 있습니까?
아래 코드는 제 코드입니다.
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
}
}
두 개의'if'는 "if a and b"를하고, 관계가없는 경우 연속하지 않습니다. – Larme
이 오브젝트를 사용해보십시오 .filter {($ 0 [ "object"] ?. contains ("Square") ?? false) && ($ 0 [ "color"]? contains ("Red") ?? false)} – adarshaU