AppDelegate のどこにコードを配置する必要がありますか?
データをどこにダウンロードするかは、アプリの動作によって異なります。通常、アプリが新しいビューに移動するたびに最新のデータを表示することになっている場合、そのビューにアクセスしたときにデータをダウンロードする必要があります。そうすれば、常に最新の利用可能なデータをユーザーに表示できます。
通常、アプリケーションにあまり多くを入れないようにします: didFinishLaunchingWithOptions:、特にネットワーク接続は、ユーザーがどのような種類の接続を持っているかわからないためです。接続に時間がかかり、アプリケーションが次のようになる場合: didFinishLaunchingWithOptions: takes too long to return iOS は、開くのに時間がかかりすぎるためにアプリケーションを強制終了します。これは、ユーザー エクスペリエンスにとってまったく良くありません。
サーバー上で一部のデータが変更されたかどうかを知るにはどうすればよいですか?
サーバーからの応答のヘッダーで、最終変更のタイムスタンプまたは etag を渡す必要があります。サーバーからヘッダー応答を取得すると、受信した前回の最終変更データと照合できます。または、etag が異なる場合は、データが変更されていることがわかります。このようにすると、すべての本体をダウンロードして単一のパラメーターをチェックするよりもはるかに高速です。そのパラメーターが変更されていない場合は、大量のデータを無料でダウンロードしたことになります。バージョニングはお勧めしません。バージョニングは、データが古いかどうかをチェックするよりも、API の変更に使用されます。
ストレージの場所?
ダウンロードするデータの量にもよりますが、通常はコア データを使用することをお勧めします。データをファイルに保存してからそのファイルを保存する際の問題は、アプリを開くたびに、そのデータを検索する前に使用可能なものに分解する必要があることです。コア データを使用すると、完全に形成されたオブジェクトが得られます。 NSPredicate を使用して検索できるため、長期的にはすべてを簡単に使用できます。
いくつかの設定をダウンロードするだけの場合は、ファイルや NSUserDefaults のようなものを使用できますが、データのリストまたはコレクションをユーザーに表示する場合は、コア データを使用するのが最善です。