1

新しい NSManagedObject を作成し、それをコンカレンシー タイプのプライベート キューを持つコンテキストに挿入しています (したがって、バックグラウンド スレッドで実行されます)。

保存する直前に、これを呼び出します。

[appDelegate.backgroundMOC obtainPermanentIDsForObjects:
       [NSArray arrayWithObject:newObject] error:&error];

次に保存します:

[appDelegate.backgroundMOC save:&err];

ただし、EXC_BAD_ACCESS クラッシュが発生します。スタックトレースを見ると、次のように表示されます。

0 semaphore_wait_trap
7-[NSManagedObjectContentSave:]

問題のある行はsemaphore_wait_trapだと思いますが、それがどのように発生したのかわかりません。

行をコメントアウトするobtainPermanentIDsForObjectsと、問題は解決します。

何か案は?

4

1 に答える 1

1

オブジェクトID( http://openradar.appspot.com/11478919 )の取得にバグがあるため、新しく作成されたすべてのオブジェクトをに渡す必要があります-[NSManagedObjectContext obtainPermanentIDsForObjects:error:]

于 2012-07-05T20:34:42.370 に答える