【发布时间】:2012-05-02 15:12:59
【问题描述】:
当应用进入后台模式时,我的应用正在下载 JSON 对象。该应用程序将它们转换为核心数据实体。我遇到的问题是我需要将这些核心数据实体的托管对象上下文与主托管对象上下文合并。
合并这些更改的方法是通过通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextHasChanged:) name:NSManagedObjectContextDidSaveNotification object:nil];
- (void)contextHasChanged:(NSNotification*)notification
{
NSLog(@"received notification with object: %@",[[notification object] description]);
if ([notification object] == [AppUser managedObjectContext]) return;
if (![NSThread isMainThread]) {
[self performSelectorOnMainThread:@selector(contextHasChanged:) withObject:notification waitUntilDone:YES];
return;
}
[[AppUser managedObjectContext] mergeChangesFromContextDidSaveNotification:notification];
}
由于某种原因,我的代码在后台运行时没有收到这些通知。 应用程序在后台模式下运行时是否会继续生成通知? 还是因为我注册此类通知的位置/时间有误?
感谢您的澄清!
【问题讨论】:
标签: iphone objective-c ios core-data nsmanagedobjectcontext