【发布时间】:2011-03-09 21:00:03
【问题描述】:
每个线程必须有一个,但除此之外......你应该有更多吗?多吃有害吗?
例如,我很想围绕每个选项卡有一个 NSManagedObjectContext 构建我的应用程序,处理出现在该特定选项卡上的整体持久性存储的子集。
这样,我可以让选项卡 GUI 监听“其”上下文的通知,而忽略其他。异步网络调用一次只会更改一个选项卡的上下文。
(注意:不使用 NSFetchController,因为 iOS 3.2 之前该类的主要错误,这是一个 3.0+ 应用程序)
我是否误解了如何使用 NSManagedObjectContext?如果是这样,任何人都可以指出使用额外 NSManagedObjectContext 实例的“好”/“坏”原因吗?
更新:这适用于离散上下文,但是当我试图推断在一组数据上使用多个上下文来处理临时更改时,一切都变得非常错误:c.f.关于该主题的问题:How to make/use temporary NSManagedObjects?
【问题讨论】:
-
经过一些实验后,我注意到 Apple 已经“忘记”在其 API 中包含几个关键方法。例如你如何合并上下文?答:你不能,除非你生成“假”的 NSNotifications。愚蠢的。我不确定 Apple 是否希望您避免使用 NSManagedContext(看起来很奇怪),或者只是没有考虑到他们自己的 API 设计的后果。
标签: iphone core-data nsmanagedobjectcontext