【问题标题】:How to define temporary variable inside NSPredicate?如何在 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)" 但使用正确的语法,是否可以使用核心数据?

【问题讨论】:

    标签: ios core-data swift subquery nspredicate


    【解决方案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。这个stackoverflow.com/questions/3810992/… 也可能有用。
    猜你喜欢
    • 2017-10-15
    • 2019-01-29
    • 2020-08-05
    • 2018-11-04
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    相关资源
    最近更新 更多