【问题标题】:Difference Between NSManagedObject, NSManagedObjectContext and NSManagedObjectModelNSManagedObject、NSManagedObjectContext 和 NSManagedObjectModel 的区别
【发布时间】:2012-05-11 12:36:22
【问题描述】:

core-data 的这三个类[NSManagedObject , NSManagedObjectContext , NSManagedObjectModel ] 有什么区别,我们如何用最简单的方式描述?

【问题讨论】:

    标签: iphone ios core-data nsmanagedobject


    【解决方案1】:

    在数据库方面:

    • NSManagedObject = 一行
    • NSManagedObjectContext = 一个事务
    • NSManagedObjectModel = 架构

    当然,Core Data 不是数据库。

    【讨论】:

    • 谢谢。它简短但很棒的答案。如果我们已经使用过 sql,这可能是我们理解核心数据的最简单方法。请提供更多详细信息或任何文章链接,其中此类描述我们可以更好地了解 SQL。
    • 上下文更像是客户端或连接,而不是事务。
    • 一个NSManagedObjectContext 类,在NSManagedObjectModel 实例周围包裹了一个可变层。
    • @DeepakThakur sqlite 并不是 Core Data 的唯一后端。您还可以使用二进制、XML、内存,甚至自己编写(刚刚看到一个使用Realm)。话虽如此,他们的意思是,如果您以与使用 SQL 数据库相同的方式使用它,您可能会遇到问题。这是真的,无论底层技术如何。
    【解决方案2】:

    来自 CoreData 编程指南:

    您可以将managed object context 视为智能便签本。当您从持久存储中获取对象时,您会将临时副本带到便笺簿上,它们在此处形成对象图(或对象图的集合)。然后,您可以随意修改这些对象。 除非您实际保存这些更改,否则持久存储将保持不变。

    【讨论】:

    • - 很好,那么 NSManagedObject 呢?
    【解决方案3】:

    NSManagedObjects 表示存储在数据库中的数据。您可以将它们视为模型对象。

    NSManagedObjectContext 允许您从数据库中插入、保存和检索(使用 NSFetchRequest)NSManagedObjects。”

    【讨论】:

      【解决方案4】:
      【解决方案5】:

      NSManagedObject 继承自对象,并添加了由核心数据管理所需的方法。

      上下文是保存由核心数据管理的对象的位置,当您从数据库中获取对象或创建对象以保存到该对象时会发生这种情况

      对象模型描述了持久存储的核心数据模式

      【讨论】:

        猜你喜欢
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 2020-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多