私のアプリはWebサービスに接続し、3つの異なる方法からPOSTを実行し、これらの3つのデータセットをコアデータに挿入します。新しいデータが利用可能になるたびに、コアデータのすべてが削除され、新しいデータが挿入されます。これらの3つの方法のそれぞれは異なるTableViewControllers
で表示されます。つまり、これらのそれぞれが表示されるたびに3つ以上のフェッチが表示されます。TableViewControllers
コアデータの削除、挿入、フェッチを実行する正しいスレッド
私たちは、Webサービスからフェッチされた3セットのデータを持っています。次に、これらをすべて別のエンティティに挿入して、新しいデータをフェッチしてメインTableViewController
に表示します。
私はスレッドとマルチコンテキストコアデータ構造の複雑な関係に苦しんでいます。アプリケーションのスレッドの安全を確保するために、挿入、削除、フェッチをどこで実行する必要がありますか?
どのくらいのデータがありますか?現在どのようなコンテキストやスレッドがありますか? – Wain
@Wainデータは比較的小さいです。各エンティティには約1,000件のレコードがあります。 NSURLSessionは、メインスレッド上で完了ハンドラを処理しています。次に、メインスレッドNSMainQueueConcurrencyTypeで削除するメソッドを呼び出し、メインスレッド/ NSPrivateQueueConcurrencyTypeを挿入します。その後、メインスレッドとメインコンテキストでフェッチが行われます。 – user3687