2

タイトルについて申し訳ありませんが、長い質問を要約する方法がわかりませんでした。

アプリのコア データにオフライン データがあります。ユーザーの意のままに、サーバーから最新のものをダウンロードして更新できます。画像もダウンロードの一部です。ユーザーが更新操作をキャンセルしたり、途中で何かが起こった場合に、更新操作を開始する前の状態でデータを残したい。

多くのフォーラムやブログでは、二次スレッドごとに独自のコンテキストを作成することを推奨しています。イメージのダウンロードは同時操作キューの下にあるため、多くのスレッドが実行されます。データベースが不完全な状態になるのを避けるために、各スレッドに保存したくありません。

セカンダリ スレッド用にアクティブなエンティティのレプリカを作成して、それらすべてのセカンダリ スレッドを保存し、好きなように編集できるようにするとよいでしょうか。更新プロセス全体が終了したら、データを単一のスレッドでプライマリ テーブル/エンティティに移植できます。

与えられたシナリオに対して推奨されるアプローチは何ですか?

4

1 に答える 1

2

あなたが読んでいる推奨事項は、おおむね正しいものでした。ただし、コンテキストを作成するのはセカンダリ スレッドではなく、実際にはその逆です。

メインの管理対象オブジェクト コンテキストの子コンテキストを作成し、NSPrivateQueueConcurrencyType永続ストアを追加するときに使用することを確認します。performBlockスレッドとメモリを自動的に管理する API を使用します。ダウンロードが失敗した場合は、単に子コンテキストを破棄します。

于 2013-11-08T05:26:06.237 に答える