在mergeChangesFromContextDidSaveNotification上调试EXC_BAD_ACCESS

时间:2012-07-10 20:30:24

标签: objective-c ios exc-bad-access nsmanagedobjectcontext

我在以下代码行中获得了关于我的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次就会崩溃(我每次运行测试时都会在模拟器上重置内容)。

0 个答案:

没有答案