我正在寻找一个简单的答案,可以突出显示在同一线程(在我的例子中是主要线程)中使用(或避免)多个上下文的规则。
通常,在核心数据中,我设置一个在整个应用程序中使用的主上下文。然后,如果我需要执行一些后台工作,我会为我运行的每个后台操作创建一个上下文。
这种方法在大多数情况下都是有效的。 Core Data 以完美的方式管理内存。但我也可以决定显式清除一些对象图(管理内存占用)。在这里,我可以依靠- (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag
将其传递给NO
参数。但是,我需要小心可能会丢失的未决更改。
现在,我的问题如下。是否有任何经验法则可以决定我可以在单个线程(主线程)中使用的上下文数量?我的想法如下。创建主上下文(保存更改的位置)和仅用于显示目的并根据需要创建的附加上下文。当我用完一个后,我可以发送一个reset
回收整体内存。
有什么建议吗?如果新的 iOS 5 API 有任何影响,请分享。
柔韧上瘾,
主线程上下文对于暂存器工作和管理工作集最有用。
Scratchpad 工作是使用 MOC 处理您不打算处理的数据-save:
。或者为撤消管理器设置一些东西。我发现这没有你想象的那么有价值。
如果您的 UI 将显示一堆未在 UI 其余部分中使用的对象,那么您可以使用新的 MOC 来管理内存,然后在关闭视图时将其释放。这允许处理所有那些对应用程序的其余部分没有用处的项目。虽然这对于管理内存很有用,但它并不能替代响应 iOS 中的内存警告来修剪树。
Andrew
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)