【发布时间】:2009-06-08 14:21:21
【问题描述】:
我正在将应用程序从 SQLitePersistentObjects 转换为 CoreData。
在应用程序中,有一个类,我从从我的服务器检索的 XML 文件生成许多*实例。 UI 可以触发需要我保存一些*这些对象的操作,直到下次调用应用程序。
除了每个对象都有一个 NSManagedObjectContext (仅与它们的从属对象共享,其中可以包括 blob)。我看不到如何对哪些对象进行持久化进行细粒度控制(即在对象级别)。如果我尝试为所有新创建的对象设置一个上下文,当我尝试将我的一个对象移动到新上下文时会出现异常,以便我可以自己持久保存它。我猜这是因为它拥有的对象留在“旧”上下文中。
我看到的另一个选项是拥有一个上下文,保留我的所有对象,然后删除我以后不需要的那些 - 这感觉它会过多地访问数据库,但也许 CoreData 有魔力。
所以:
- 我是否遗漏了有关我的 CoreData 应用程序架构方式的一些基本信息?
- 每个对象都有一个上下文是一种好的设计模式吗?
- 有没有更好的方法在上下文之间移动对象以避免 2?
* 其中“many”的意思是“几十个,可能是几百个,而不是几千个”,“some”至少比“many”小一个数量级
【问题讨论】:
标签: core-data persistence