在以下代码行中,我的 iPad 应用程序每运行 5 次就会得到一个 EXC_BAD_ACCESS。我运行了 Zombies,但应用程序崩溃了,而且 Instruments 没有显示任何僵尸,它只是停止录制。
[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
下面是我在 AppDelegate.m 中使用的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(contextChanged:)
name:NSManagedObjectContextDidSaveNotification
object:nil];
.....blah blah balh........
return YES;
}
- (void) contextChanged:(NSNotification *)notification
{
if(self.managedObjectContext)
{
if ([notification object] == [self managedObjectContext] ) return;
if(![NSThread isMainThread])
{
[self performSelectorOnMainThread:@selector(contextChanged:) withObject:notification waitUntilDone:YES];
}
[self.managedObjectContext setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
}
}
我不确定如何调试这个?奇怪的是,它只会在我运行应用程序的第 5 次到第 7 次时崩溃(每次运行测试时我总是在模拟器上重置内容)。