私はコア データを使用するアプリに取り組んでおり、これがスレッド セーフではないことを認識していますが、これを正しく管理する方法を理解するのに苦労しています。私がこれまでに持っているものを説明しましょう...
管理対象オブジェクトを開始し、他のすべてのクラスで使用できるシングルトンを作成しました。すべてのクラスが同じ管理対象オブジェクト アドレスを受け取るため、これは正しく機能しているようです。
次に、この順序で実行される2つのクラスがあります...
- データの読み込み。これはレコード数を取得し、ゼロの場合はコア データベースをロードします。
- 手順 1 で保存されたデータを表示する Tableview。
私の問題は、ステップ 1. が常にゼロのレコードを返し、ステップ 2. が機能しており、正しいレコード数を返すことです。
1.で問題をテストしたところ、実行中のスレッドが原因であり、管理対象オブジェクトが作成されたのと同じスレッドでリクエストを送信すると、完全に機能します。
では、なぜクラス 1 にあるのでしょうか。リクエストが正しいスレッド上にあり、クラス 2 にあることを確認する必要があります。うまくいくか、それとも運が良かっただけなのか。スレッドとコア データへの推奨され、文書化されたアプローチはありますか?
ありがとう