gpt4 book ai didi

ios - 具有与 CoreData 相同类型的持久性和非持久性对象

转载 作者:行者123 更新时间:2023-11-28 23:15:17 25 4
gpt4 key购买 nike

我目前正在开发一个 iPhone 应用程序,它使用 CoreData 来持久保存一些对象。

为了阐明我的观点,我想简要介绍一下该场景:

我有一些从 Internet 查询的数据。我将这些数据保存在一个名为 MyData 的对象中,并在需要的地方使用它。当数据被使用时,我想永久保存它,所以我将它保存到 MyManagedData 对象。

我真的不喜欢这种保存数据的解决方案。因为我有两个类保存完全相同的数据,但是一个是由CoreData管理的。

有没有办法在不将托管对象自动保存到 CoreData 的情况下实例化托管对象?所以我可以只拥有 MyManagedData 对象并保存其中的一堆吗?你如何构建这些东西?

问候

最佳答案

一种可行的方法是拥有两个托管对象上下文。您已经为主要的持久数据使用了一个上下文,因此您可以为您永远不会保存的“临时”数据创建一个新的上下文。

关于这个主题有几篇文章,例如 http://www.timisted.net/blog/archive/multiple-managed-object-contexts-with-core-data/ .

我一直在使用 InnerBand帮助 CoreData。它大大简化了我的代码,并且没有妨碍。

如果您使用 InnerBand,创建用于存储临时实体(未保存)的临时上下文/存储应该只是执行以下操作的一种情况:

// note - not calling [CoreDataStore mainStore] here --
// we use that for persisted main data
self.temporaryStore = [CoreDataStore createStore];

// and then create temporary entities like so:
MyEntityClass *myEntity = [MyEntity createInStore:self.temporaryStore];

显然,您永远不应该调用 [self.temporaryStore save],因为它仅用于临时数据。

注意:我自己还没有尝试过上述策略,但我相信它是可行的。

注意在相关问题上,我也在使用 mogenerator这消除了生成实体类的痛苦(并防止在重新生成实体类时破坏您可能已添加到实体类中的自定义代码)。

关于ios - 具有与 CoreData 相同类型的持久性和非持久性对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725985/

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