Rog*_*Rog 0 persistence core-data
我正在将应用程序从SQLitePersistentObjects转换为CoreData.
在应用程序中,有一个类,我从我的服务器检索的XML文件生成许多*实例.UI可以触发动作,要求我保存这些对象的一些*,直到下次调用应用程序.
除了为每个这些对象提供单个NSManagedObjectContext之外(仅与其可包含blob的子服务对象共享).我无法看到如何对持久化对象进行细粒度控制(即在对象级别)的方法.如果我尝试为所有新创建的对象创建一个上下文,当我尝试将一个对象移动到一个新的上下文时,我会得到一个异常,所以我可以将它保存在自己的上面.我猜这是因为它拥有的对象留在'旧'上下文中.
我看到的另一个选项是拥有一个上下文,保留我的所有对象,然后删除我以后不需要的那些 - 这感觉就像它会过多地击中数据库但是CoreData可能会有魔力.
所以:
*其中"many"表示"数十,数百,不是数千","some"至少比"many"少一个数量级
核心数据实际上不是对象持久性框架.这是一个对象图管理框架,恰好能够将该图形坚持到磁盘(请参阅此之前的SO回答更多信息).因此,尝试使用Core Data来保留对象图中的一些对象将会对抗粒度.核心数据更倾向于管理您要创建的所有对象的整个图形.所以,选项并不完美,但我看到了几个(包括你提到的一些):
(void)assignObject:(id)object toPersistentStore:(NSPersistentStore *)store),然后保存上下文.就个人而言,我会选择1 - 让Core Data做自己的事情,包括管理对象图中的删除.
| 归档时间: |
|
| 查看次数: |
1889 次 |
| 最近记录: |