使用 ANY 和两个条件创建 NSPredicate
Create NSPredicate with ANY and two conditions for it
我只有两个实体: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 ...
为什么?
你可以试试这个-
let format = "SUBQUERY(items, $item, $item.identifier IN %@ AND $item.isActive = true).@count > 0"
let predicate = NSPredicate(format: format, ["1", "2"])
我只有两个实体: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 ...
为什么?
你可以试试这个-
let format = "SUBQUERY(items, $item, $item.identifier IN %@ AND $item.isActive = true).@count > 0"
let predicate = NSPredicate(format: format, ["1", "2"])