swift - 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 上进行的任何搜索都没有找到类似的问题。
解决方案
将项目分解为酒店、餐厅等类别可能会更有效,这样您只在相应的类别中进行搜索
推荐阅读
- python - 如何使用 PyGithub 在 repo 中创建新目录?
- java - 如何将 FlightOfferSearch 和 FlightOrder 对象作为 JSON 返回?
- r - 通过在一个列中选择动态宽度中的第一个和最后一个非缺失值来计算公式,以填充宽度上的 NA
- r - 如何在 R 数据框中取消嵌套列表,同时保留键和值?
- asp.net - 如何在使用 asp.net core 和 mongodb 时从一对多关系表中获取数据
- javascript - 即使使用 webkit 前缀,剪辑路径也无法在 safari 上运行
- google-analytics - 谷歌分析重定向,呈现 2 页
- r - 如何在 R 中创建一个带有两条条和一条线的图形?
- android - 升级AS后,新资源无法反映编辑器的变化
- angular - SSL 与 Firebase 托管 - OVH 域