Parse部分匹配Swift中的数组

时间:2018-01-10 22:07:48

标签: swift parse-platform

我的应用中有一个搜索栏,它在Parse中搜索的项目有一个属性" searchTokens"在我的数据库中,它是根据该项目的几个不同属性编译的。

但是,在搜索时,我能看到匹配项目的唯一方法如下:

query?.whereKey("searchTokens", containsAllObjectsIn: keywords)

问题是,这只返回每个关键字都匹配的项目,而不是任何关键字。

我没有看到任何可以实现此目的的其他Parse函数,也不知道如何以其他方式自己完成。

想法?

编辑: 我对某人发布的答案的评论我认为有点清晰?:

啊,所以,Parse是一个基于mongoDB的服务的后端,它不是本地的。查询?你在我的帖子中看到的是PFQuery类型。 containsAllObjectsIn是一个获取对象列表的函数(因此我上面的代码中的关键字是复数;在这个实例中匹配字符串)并将所有关键字匹配到"列"在我的"表"这是与该条目相关的搜索词/标记列表。

1 个答案:

答案 0 :(得分:0)

此扩展程序会有所帮助

extension String{
    func containsIgnoringCase(find: String) -> Bool{
        //next two line might be necessary if you are using special language other than english
        //let locale = Locale.init(identifier: $language identifier$)
        //let temp = self.lowercased(with: locale)
        return self.range(of: find, options: .caseInsensitive) != nil

    }
}

如果我做对了,请使用您的数据库列表并使用此方法过滤,如

let newList = yourlist.filter{$0.containsIgnoringCase(find: $search key$)}