目的: ファイルからエンティティを作成する必要があります。
したがって、エンティティは CoreData のデータ モデルを表し、ファイルにはこのエンティティのすべての情報が含まれています。
インターネットから取得したすべてのファイル。このために、AFNetworking フレームワークを使用します。
ファイルの取得方法 (アルゴリズム):
- plist ファイルを要求します。plist ファイルには、ダウンロードする必要がある他の URL への値が含まれています。
- plist がデバイスの Documents ディレクトリにダウンロードされたとき。解析します。
- plist を解析すると、この plist を表す NSDictionary の各項目から URL を取得します。
- 次に、この URL から zip ファイルをリクエストします。
- zip ファイルがダウンロードされたら、それらを解凍して次のステップに進みます。
- 解凍されたファイルを解析し、データ モデルを作成します。
それは私の問題です。ローカルに保存されたファイルとサーバーに保存されたバージョンのファイルがあり、サーバー上のバージョンが変更されたときに、実際のデータでデータ モデルをリロードする必要があります。サーバーからすべてのデータを再度ロードする悪い方法は、ストレージ内のすべてのエンティティを削除し、新しいデータから新しいエンティティを作成することです。しかし、それは最初と 2 番目に専門的な方法ではなく、トラフィックに追加の負担がかかります。なぜなら、リロードする必要があるエンティティが 1 つしかない場合、実際の状態にある他のエンティティをリロードする必要があるからです。したがって、誰かがこの質問のベストプラクティスを知っているかもしれません。もちろん、私は自分のソリューションを作成することができ、それは機能しますが、人々がこの問題をどのように解決するかを見て、私のソリューションと他のソリューションの違いを理解したいと思っています.