我正在使用 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 ! ***
}
我将不胜感激任何建议!
谢谢,罗斯