0

我正在使用 XCode 4.4.1 和 Core Data 为 iPhone(iOS5 及更高版本)开发应用程序。

我有许多可以使用 NSTableViewControllers (单独的控制器,但代码相似)查看和删除的实体

其中一个实体 ( ExpenseItem ) 正在删除没有任何问题,但删除其他实体会导致执行被阻止。

调试导航器显示一个线程符号和“正在运行”一词,但我必须按下停止按钮才能返回编辑器。

我没有创建任何线程,所以在尝试了我能想到的一切数小时后,我不知所措!

这是我为调试问题而编写的一些代码 - 它保存了 ExpenseItem 对象但挂在 Account 对象上。如果我注释掉 ExpenseAccount 保存,帐户保存仍然挂起,反之亦然。

// deleteObject  ** why does this hang ???

-(void)deleteObjectX {                                                                  

    NSNumber *ExpenseKey    = [NSNumber numberWithInt:9];            // test data
    NSString *AccountCode  = @"Cash";

    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;

    NSManagedObject* thisExpenseItemObject = [self getExpenseItemObject:ExpenseKey];  //   ExpenseItem
    NSManagedObject* thisAccountObject = [self getAccountObject:AccountCode];         // Account

   // if the next 3 lines are commented out it still hangs on the last line

  [managedObjectContext deleteObject:thisExpenseItemObject];         // OK
  BOOL result = [thisExpenseItemObject isDeleted];                   // result is YES
  [managedObjectContext save:nil];                                   // works 

  [managedObjectContext deleteObject:thisAccountObject];             // OK
  result = [thisAccountObject isDeleted];                            // result is YES
  [managedObjectContext save:nil];                                   // ***Hangs Here ! ***

}

我将不胜感激任何建议!

谢谢,罗斯

4

0 回答 0