Swift怎么在数组内同时搜索多个词?

标签: Swift
发布时间: 2017/12/22 16:01:52
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的数组:

[["object": "Ball", "color": "Red"], ["object": "Ball", "color": "Blue"], ["object": "Square", "color": "Red"]

当我搜索Ball时,所有的Ball都出现了,但是当我添加Red(Red Ball)时,它也显示了Square,我希望它只显示一个包含两个单词的Ball和Red的物体,而不是显示所有包含一个单词Ball或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
        }
}


解决方法 1:

这样写:

let splitText = searchText.split(separator: " ")
let filteredObjects = objects.filter {
    var include = false

    for text in splitText {
        if let s = $0["object"], text.contains(s) {
            include = true
            continue
        }

        if let s = $0["color"], text.contains(s) {
            include = true
            continue
        }

        return false
     }

     return include
}


官方微信
官方QQ群
31647020