3

ここで説明されているのとまったく同じ問題が発生しています:http://fingertwister.tumblr.com/post/323​​41639626 /coredata-problem-with-multiple-stores-using

つまり、2つのストア、一方は静的、もう一方はユーザー生成です。1つのストアからのみフェッチするようにNSFetchedResultsControllerを設定します。コントローラの割り当てが解除されると、NSArrayインスタンスのEXC_BAD_ACCESSでアプリがクラッシュします。このコードはiOS4と5で完全に機能しました。クラッシュはiOS6でのみ発生します。

ゾンビ分析は、メッセージが送信されている割り当て解除されたNSArrayが、NSFetchedResultsControllerのNSFetchRequestの「affectedStores」プロパティであることを示しています。上記のリンクと同様に、[fetchRequest setAffectedStores:...]コマンドを削除すると、問題は解決します。また、リンクされた例の場合と同様に、その配列のメモリ管理に関する限り、自分のコードに問題はありません。

ドキュメントは、この分野でiOS6で何も変更されたとは言っていないようです。私は何かを逃したことがありますか?

4

1 に答える 1

3

この問題は、CoreDataのどこかでメモリ管理に問題が発生し、affectedStores-arrayが早期に解放されるために発生します。

これを回避するには、参照カウンターをハックとして増やします: https ://gist.github.com/maruno/5451607

于 2013-04-24T12:08:26.840 に答える