使用 ANY 和两个条件创建 NSPredicate
Posted
技术标签:
【中文标题】使用 ANY 和两个条件创建 NSPredicate【英文标题】:Create NSPredicate with ANY and two conditions for it 【发布时间】:2021-06-25 07:48:55 【问题描述】:我只有两个实体:Product
和 Item
。产品可能有很多items
:Set<Item>
。 Item
有两个属性:isActive
和 identifier
。
现在我需要获取至少有一个Item
同时满足以下条件的所有产品:
identifier IN %@
//["1", "2"]
isActive = true
let format = "ANY (items.identifier IN %@ AND items.isActive = true)"
let predicate = NSPredicate(format: format, ["1", "2"])
但我遇到了异常:Unable to parse the format ...
为什么?
【问题讨论】:
【参考方案1】:你可以试试这个-
let format = "SUBQUERY(items, $item, $item.identifier IN %@ AND $item.isActive = true).@count > 0"
let predicate = NSPredicate(format: format, ["1", "2"])
来源:NSPredicate Cheatsheet
【讨论】:
让我们现在试试吧;)以上是关于使用 ANY 和两个条件创建 NSPredicate的主要内容,如果未能解决你的问题,请参考以下文章
如何将 SQL 比较条件 ANY/SOME 与 DATATYPE Char 一起使用
使用 .any() 后使用 np.where 返回错误 [重复]