【问题标题】:Core Data, what objects must be fetched?Core Data,必须获取哪些对象?
【发布时间】:2013-03-18 21:41:34
【问题描述】:

我在使用 Core Data 时遇到了一些概念性问题。到目前为止,我一直认为对象出错的答案是我的视图控制器需要事先获取该对象。但是,在阅读该主题时,Core Data 似乎应该对与我已经拥有的 NSManagedObject 相关的对象进行延迟获取。那么我只需要在我的应用程序运行的一开始就获取一些东西,还是还有更多呢?

【问题讨论】:

  • 这在很大程度上取决于数据库中的内容。延迟获取是一般做法,但当然,如果需要一段时间,您当然希望预取数据。但是你通常只拉取 NSManagedObject 子类。
  • 是的,如果只是加载直接相关的对象,无论是一对一还是多对多关系,延迟获取都可以正常工作。当尚未加载的关系显示为失败左右时,调试时可能会非常混乱。但就我的经验而言,它确实有效。只需使用 KVC 访问关系或访问自动生成的子类的属性,而无需考虑获取。

标签: ios objective-c core-data


【解决方案1】:

如果您只想从另一个对象的关系属性中获取对象,您通常只需访问该属性,Core Data 就会自动进行获取。

但是,有时您需要一组不共享相同关系的对象,例如您可能想要检索在特定范围内具有日期属性的所有对象,或类似的东西。在这些情况下,您将使用显式 NSFetchRequest 并设置其 predicate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2011-01-18
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多