我只有两个实体: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"])
来源:NSPredcate Cheatsheet