我有两个 NSManagedObjectContext,一个用于 ui,一个用于后台任务。每当背景更改时,我都试图将更改合并到 UIcontext。但是每当我调用
mergeChangesFromContextDidSaveNotification:notification
它只是开始消耗内存(在模拟器上会增加到 1GB)并导致崩溃。
当然我设置了一个通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(coreUpdateFromApp:)
name:NSManagedObjectContextDidSaveNotification
object:nil];
还尝试在主线程中进行合并等。不走运!
我发现 URIRepresentation 导致了这个问题。由于某种原因,它一直被调用。 (苹果的代码不是我的)
请注意,我让它运行了不到一秒,它使用了 64.95MB,它会随着相同的调用树增长得非常快。如果我让它继续运行,它也会使 osx 崩溃!
最佳答案
问题是object:nil
。您正在聆听无尽的通知回声。
您需要指定一个特定的上下文对象来监听通知。
关于ios - mergeChangesFromContextDidSaveNotification 消耗内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001255/