私はdispatch_queue_tを使用するアプリケーションを持っており、OSとデバイスの組み合わせ全体でほとんどのユーザーに対して正常に機能しています。実行を継続するスレッドが多数あり、特定のデータをフェッチするためにdispatch_queue_tを実行しています。スレッド間のNSManagedObjectContextを追跡するために、NSManagedObjectContextを追跡し、適切なスレッドにマップするNSDictionaryを使用します。
現在、問題はサーバーからデータをフェッチするために使用される長時間実行キューにあるため、時間がかかります。ディクショナリ内のNSManagedObjectContext参照は、データベースを指すパスの値を持つ文字列に変更されます。
ディクショナリからオブジェクトを削除するのはthreadExitデリゲートのみであるため、NSManagedObjectContext参照が(DBファイルを指す)文字列に変更されるだけで、参照が削除されることはありません。
これを引き起こしている可能性があるのは何ですか?
うわぁ!愚かな見落とし。
コードのどこかで、コンテキストが辞書に追加された後、リリースされていました。さて、なぜコンテキストが単なるクラッシュではなく文字列に変更されたのかは謎です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加