コアデータを使用するプログラムを作成しましたが、うまく機能します。
それ以来、すべてのコア データ メソッド呼び出しとフェッチ ルーチンを自己完結型のクラスに移動しようとしました。次に、私のメイン プログラムはそのクラスをインスタンス化し、そのクラスに対していくつかの基本的なメソッド呼び出しを行います。その後、クラスはすべてのコア データを舞台裏で処理します。私が遭遇したのは、コンテキストからマネージド オブジェクトを取得すると、有効なオブジェクトが存在するにもかかわらず、そのプロパティの割り当てが解除され、クラッシュが発生することがあるということです。私はゾンビと遊んでメモリリークを探しました。私が集めたのは、実行ループがおそらくメモリの割り当て解除に関与しているようですが、よくわかりません.
そのメモリが割り当て解除されているかどうかを判断し、アクセスする必要がある場合にコア データを強制的に取得する方法はありますか? 私の managedObjectContext の割り当てが解除されることはなく、fetchedResultsController も割り当てが解除されることはありません。
[managedObjectContext refreshObject:mergeData:] メソッドまたは [managedObjectContext setRetainsRegisteredObjects:] メソッドを使用する必要があるのではないかと考えました。ただし、(私が理解していることから)メモリ集約型になるため、最後のものは最善の策ではない可能性があるという印象を受けています。
これらのエラーは、コア データの呼び出しを別のクラス ファイルに移動したときにのみ表示され、表示されるときはランダムです。
任意の洞察をいただければ幸いです。
-ライアン