使用ANY和两个条件创建NSPredcate



我只有两个实体:ProductItem。产品可能有许多items:Set<Item>Item具有两个性质:isActiveidentifier

现在我需要提取所有同时满足以下条件的至少有一个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

最新更新