0

在以下代码行中,我的 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 次时崩溃(每次运行测试时我总是在模拟器上重置内容)。

4

0 回答 0