0

インターネットから情報を取得するために、foursquare およびその他のサーバー API を使用するアプリケーションに取り組んでいます。しかし、アプリケーションがインターネットに接続されていないときにいくつかのデータを使用する必要があります。これらのデータをインターネットから簡単に保存して、電話が接続を失った場合にキャッシュとして「ディスク」に保存する方法が必要です。基本的に、次のようなモデル クラスの一部を保存したいと考えています。

VenueCategory には、名前、ID、画像 (~10)、7 日間の天気予報、会場が含まれます。Venue には、画像、評価、名前、カテゴリ、categoryImage、住所、電話番号、営業時間のスケジュールが含まれています。水レポートには、日付、最高気温、最低気温、風などが含まれます。

3つの方法を考えていますが、どれが私の問題に最適かわかりません。より良いアイデアを教えてください.

  1. データベース プロ: データから適切な表現が得られます。短所: アプリケーションが稼働中の場合、変更が困難です。会場カテゴリ用の新しいテーブルは必要ありません。テーブル内の 1 つのレコードにはテーブルが多すぎます。多くのクエリ、挿入、削除、更新などを行う必要があります。

  2. シリアライゼーション クラス全体をディスクに書き込み、ディスクから読み取るだけの良い方法を見つけられれば簡単です (試したことはありません)。

  3. Plist: (データベースと同様)

私の最後の質問は、どれが最高だと思いますか、そしてその理由は何ですか? もっと良いアイデアはありますか?

4

2 に答える 2

1

これにアプローチする最も簡単な方法は (IMO)、DTO を NSCoding に準拠させ、 NSKeyedArchiverを使用してシリアル化し、 NSKeyedUnarchiverを使用して逆シリアル化することです

そのためにAutoCodingを使用できます。これにより、NSCoding で必要なメソッドがまったく手間をかけずに自動的に実装されます。

于 2013-09-23T20:51:16.363 に答える
0

CoreData の使用を検討しましたか? それが私の頭に浮かんだ最初の解決策でした。

CoreData は (デフォルトで) SQLite に基づいており、私の意見では、iOS でオブジェクトを永続化するためのデファクト スタンダードです。

于 2013-09-23T20:25:04.297 に答える