XCode 4.4.1とCoreDataを使用してiPhone(iOS5以降)用のアプリを開発しています。
NSTableViewControllersを使用して表示および削除できるエンティティがいくつかあります(個別のコントローラーですが、同様のコードを使用します)
エンティティの1つ(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 ! ***
}
どんな提案にも感謝します!
ありがとう、ロス