gpt4 book ai didi

ios - 使用 Core Data 时,您是否保留非托管对象类及其托管对象版本

转载 作者:行者123 更新时间:2023-11-28 21:40:51 25 4
gpt4 key购买 nike

在处理核心数据时,我一直想知道拥有非托管对象的模型类是否有任何值(value)?相反,如果要赋予这些对象持久性,则处理核心数据存储的数据管理器类知道如何将类(或多个类)的实例写入核心数据存储,并且当您的应用程序想要从持久性中调用这些实例时,数据存储是否有一种方法可以在没有托管对象上下文的情况下创建这些对象的实例?

我学习使用核心数据的方法是使用 xCode 为您提供的托管对象模型创建模型类,然后每当您创建或销毁这些类的实例时,您将它们视为托管对象而不是普通类型大多数其他类创建的对象实例。这总是让我感到有些费解和困难,因为每当您需要更改托管对象时,您都需要通过托管对象上下文来完成,归根结底,它只是一个数据库。

如果问题令人困惑,我很抱歉,如果您需要澄清,我非常乐意,我发现讨论 Core Data 有点困难。

最佳答案

我有an app这在很大程度上依赖于核心数据。

不,我认为拥有模型对象的非托管版本没有任何值(value)。它只会增加复杂性(您需要编写大量额外的代码),并且会带走使用 Core Data 的一些好处(主要是对象的延迟加载)。

您确实可以通过托管对象上下文创建和销毁托管对象,但除此之外,托管对象的行为与非托管对象相同。例如,您可以更改托管对象的属性,而无需对托管对象上下文执行任何操作。

Core Data 并不是真正的数据库;它更像是一个 ORM (尽管 Apple 并未这样调用它)。这是一种将对象持久保存到持久存储并从中检索它们的方法,它所做的远不止将内容存储在数据库中。

如果您真的想要非托管数据模型,我的建议是根本不要使用 Core Data。类似于 Gus Mueller 的 FMDB或 Marco Arment 的 FCModel .

Core Data 的某些方面确实难以理解。但是,一旦您弄清楚了,它并没有那么糟糕,而且它使某些事情比仅使用数据库更容易很多

您可以阅读 Core Data Programming Guide ,但我个人在第一次了解它时并没有太多运气。一本好的 Core Data 书可能会很好;当我第一次学习它时,我阅读了 Core Data for iOS ,并发现它很有帮助。

关于ios - 使用 Core Data 时,您是否保留非托管对象类及其托管对象版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32106616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com