我正在寻找一个简单的答案,可以突出在同一线程中使用(或避免)多个上下文的规则(在我的例子中是主要的)。
通常,在 Core Data 中,我设置了一个在整个应用程序中使用的主上下文。然后,如果我需要执行一些后台工作,我会为我运行的每个后台操作创建一个上下文。
这种方法在大多数情况下都是有效的。Core Data 以完美的方式管理内存。但我也可以决定明确清除一些对象图(管理内存占用)。在这里,我可以依靠- (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag
将它传递给NO
param。但是,我需要小心可能丢失的未决更改。
现在,我的问题如下。是否有任何经验法则可以决定我可以在单个线程(主线程)中使用的上下文数量?我的想法如下。创建一个主要上下文(保存更改)和仅用于显示目的并按需创建的附加上下文。当我用完一个时,我可以发送一个reset
来回收整个内存。
有什么建议吗?如果对新的 iOS 5 API 有任何影响,请分享。