現在、タブバーのある iPhone プロジェクトがあります。タブバーには 2 つのビューがあります。どちらのビューも Core Data データベースにデータをロードまたは保存します (これらのビューは両方とも、Web サービスからデータを収集してデータベースに保存するメソッドを開始します)。ビューが読み込まれると、データベースからデータが読み込まれ、ビューのテーブルにデータが入力されます。アプリを実行してタブバーの 2 番目のビューをクリックすると、最初のビューはまだ Web サービスからデータをロードし、別のスレッドでデータベースに挿入しています。これは問題ありませんが、最初のビューが Web サービスからデータベースへのすべてのデータのロードを完了すると、2 番目のビュー コントローラーがデータベースからデータをロードしている場合にのみ、両方のビュー コントローラーがフリーズします。
コンソールにエラーは表示されず、xcode によるエラーの表示もありません。私のプロセスはすべて異なるスレッドで動作するため、メインスレッドがフリーズするという問題はありません。Web サービスからデータを取得してデータベースに保存するのはメソッドであり、メソッドの最後にNSLog(@"View Controller 1 Save Complete")
. これが呼び出され、かつ 2 番目のビュー コントローラーがまだデータを読み込んでいるとすぐに、フリーズします。アプリ全体が応答しません (何も機能しません)。
私は他のSOの質問に関する情報に目を通し、NSManagedObjectContext
フェッチまたは挿入ごとに新しい宣言を行うことを推奨しましたが、それは問題を解決していません。
何が起こっているのか知っている人、またはもっと詳しい情報を知りたい人は、私に知らせてください。
編集: Xcode 4.5 と IOS 6 シミュレーターを使用しています。これは、1 週間前にリリースされた新しい IOS のベータ版です。ベータ版の使用を開始する前にこの問題が発生したため、これがエラーではないことはわかっています。