如何在NSPredicate中定义临时变量?

时间:2014-10-04 21:10:49

标签: ios core-data swift subquery nspredicate

我需要一个几乎像这样的谓词:

let frOU = NSFetchRequest(entityName: "OU")
frOU.predicate = NSPredicate(format: "IN o.ous.recordName = %@ AND IN o.ous.checkedOut = true", "123")

但是这两个条件与同一个OU托管对象匹配很重要。我怎么写呢?

"$(o.ous) IN ($0.recordName = %@ AND $0.checkedOut = true)"一样,但是使用合适的语法,是否可以使用核心数据?

enter image description here

1 个答案:

答案 0 :(得分:3)

这可以使用SUBQUERY来完成,例如

NSPredicate(format: "SUBQUERY(o.ous, $x, $x.recordName = %@ AND $x.checkedOut = true).@count > 0", "123")

找到与“O”对象相关的所有“OU”对象,该对象与any相关 具有给定记录名称和签出值的“OU”对象。