【问题标题】:Core Data - How to check if an object relationship exists without firing a fault核心数据 - 如何在不触发错误的情况下检查对象关系是否存在
【发布时间】:2013-11-16 13:18:26
【问题描述】:

有一个对象 A 和一个对象 B。对象 B 有一个可转换类型的属性(图像),以及一个与对象 A 的关系。对象 A 可能有一个关系到一个,并且只有一个,对象 B,或者它可能不会。

当我枚举我的对象 A 数组时,我想检查每个对象 A 是否有一个对象 B。但是,我不想触发对象 B 的错误(这将调用反向 imageToData NSValueTransformer)。我只是想知道它是否存在。如何在不将对象 B 放入内存的情况下做到这一点?

【问题讨论】:

    标签: objective-c core-data relationship fault nsvaluetransformer


    【解决方案1】:

    我认为你可以测试一下

    if (objectA.relationshipToB != nil) ...
    

    这不会为相关的B 对象触发错误,因为您没有访问它的属性

    【讨论】:

    • 谢谢,有道理。我认为 objectA.relationshipToB 会导致自动错误,但我很高兴看到它不会。
    【解决方案2】:

    在 Swift 中我得到了一个

    找不到接受提供的参数的 '!=' 的重载

    错误。我的关系被正确标记为可选,但在生成的NSManagedObject 中,我的@NSManaged 属性后面没有?。所以对nil 的检查失败了。我添加了?,然后我可以检查关系是否存在。

    之前(没用)

    @NSManaged var myRelationShip: MyClass
    

    之后(工作)

    @NSManaged var myRelationShip: MyClass? // <--- Added `?`
    

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      相关资源
      最近更新 更多