如何在 NSPredicate 中定义临时变量?
Posted
技术标签:
【中文标题】如何在 NSPredicate 中定义临时变量?【英文标题】:How to define temporary variable inside NSPredicate? 【发布时间】:2014-10-04 21:10:48 【问题描述】:我需要一个几乎像这样的谓词:
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)"
但使用正确的语法,是否可以使用核心数据?
【问题讨论】:
【参考方案1】:这可以通过一个 SUBQUERY 来完成,例如
NSPredicate(format: "SUBQUERY(o.ous, $x, $x.recordName = %@ AND $x.checkedOut = true).@count > 0", "123")
查找与“O”对象相关的所有“OU”对象,该对象与任何对象相关 具有给定记录名称和签出值的“OU”对象。
【讨论】:
@János:我知道的唯一 Apple 文档隐藏在 NSExpression 类参考中。还有一些 SO 答案演示了使用或 SUBQUERY。这个***.com/questions/3810992/… 也可能有用。以上是关于如何在 NSPredicate 中定义临时变量?的主要内容,如果未能解决你的问题,请参考以下文章