1

我正在寻找一个简单的答案,可以突出在同一线程中使用(或避免)多个上下文的规则(在我的例子中是主要的)。

通常,在 Core Data 中,我设置了一个在整个应用程序中使用的主上下文。然后,如果我需要执行一些后台工作,我会为我运行的每个后台操作创建一个上下文。

这种方法在大多数情况下都是有效的。Core Data 以完美的方式管理内存。但我也可以决定明确清除一些对象图(管理内存占用)。在这里,我可以依靠- (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag将它传递给NOparam。但是,我需要小心可能丢失的未决更改。

现在,我的问题如下。是否有任何经验法则可以决定我可以在单个线程(主线程)中使用的上下文数量?我的想法如下。创建一个主要上下文(保存更改)和仅用于显示目的并按需创建的附加上下文。当我用完一个时,我可以发送一个reset来回收整个内存。

有什么建议吗?如果对新的 iOS 5 API 有任何影响,请分享。

4

1 回答 1

2

灵活上瘾,

主线程上下文对于暂存器工作和管理工作集最有用。

Scratchpad 的工作是使用 MOC 来处理您不打算处理的数据-save:。或者为撤消管理器设置东西。我发现这比你想象的更有价值。

如果您的 UI 将显示一堆未在 UI 的其余部分中使用的对象,那么您可以通过使用新的 MOC 来管理内存,然后在您关闭视图时将其处理掉。这允许处理所有对您的应用程序的其余部分没有用处的项目。虽然这对于管理内存很有用,但它不能替代响应 iOS 中的内存警告来修剪你的树。

安德鲁

于 2012-12-31T12:51:50.040 回答