首页 > 解决方案 > NSPredicate in Realm - 从结果中的数组中搜索任何项目

问题描述

我有一个带有地点列表的领域数据库,每个地点都有一个地点类型列表。我希望能够使用谓词查询,例如 -

let searchKey = "hotel"
let predicate = NSPredicate(format: "%@ IN placeTypes", searchKey)

但是当我想匹配多个搜索键时,这不起作用。到目前为止,我的解决方案是使用 NSCompoundPredicate -

let searchKeys = ["hotel", "cafe", "bar"]
let predicates: [NSPredicate] = searchKeys.map { NSPredicate(format: "%@ IN placeTypes", $0) }
let compoundPredicate = NSCompoundPredicate(orPredicateWithSubpredicates: predicates)

这一切都很好&很好&确实有效,但我觉得这对于大表来说并不是特别有效,而且无论如何将它放入一个谓词中会很好。

如果有人对如何做到这一点有任何想法,我将不胜感激 - 在 SO 上进行的任何搜索都没有找到类似的问题。

标签: swiftrealmnspredicate

解决方案


将项目分解为酒店、餐厅等类别可能会更有效,这样您只在相应的类别中进行搜索


推荐阅读