0

サーバーからデータを取得して UITableView に表示できます。正常に動作しています。しかし、別のタブに移動して同じタブに戻ると、サーバーにデータが呼び出されます。サーバーから取得したデータをローカルに保存したい。あなたの考えを教えてください。ありがとう!

4

2 に答える 2

1

ファイルをデバイスに保存する必要があります。これはいくつかの方法で可能です。

  1. アプリのドキュメントディレクトリにファイルを保存します
  2. アプリのLibrary/Cachesフォルダーにファイルを保存します
  3. アプリのLibrary/フォルダーにファイルを保存します

各オプションにはいくつかの考慮事項があります。

  1. Documentsフォルダに保存されているファイルは、デフォルトでiCloudによってバックアップされます。ユーザーからiCloudストレージスペースを使い果たしているので、これが必要かどうかを本当に考える必要があります(ユーザーが支払う可能性があります)。
  2. キャッシュフォルダにファイルを保存するのは良い方法ですが、ユーザーのディスクの容量が不足している場合は、iOSによって削除される可能性があります(したがって、キャッシュという名前が付けられています)。
  3. デバイス上の別の(手動で作成された)フォルダーにファイルを保存すると、アプリがインストールされている限りファイルが保持されます。iCloudのバックアップやiOSによる削除はありません

特定のフォルダの場所を取得するには、次を使用します。

[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

NSDocumentDirectoryライブラリフォルダへのNSURLが必要な場合は、NSLibraryDirectoryに置き換える必要があります。

データの保存は、データを保存する場所を指すNSURLを作成してから、保存writeToURL:atomically:するNSDataのメソッドを呼び出すのと同じくらい簡単です。

UIImagesからNSDataへの変換は、UIImageJPEGRepresentationまたはを使用して実行できますUIImagePNGRepresentation

于 2012-08-22T08:22:34.320 に答える
0

一時的に保存するイメージには HJCache ライブラリを使用したいと思います。

そのため、HJCache オープン ソース ライブラリを実装する理由は次のとおりです。

  1. iOS アプリで非同期に読み込まれた画像を簡単に使用できるようにします。
  2. 共有ファイル キャッシュを簡単に使用できるようにします。
  3. Cocoa の基準に従って、メモリ管理を「正常に機能させる」ようにします。
  4. 画像を表示する典型的なケースをサポートします。たとえば、ツイーターのプロフィール写真を表示するツイートのリストをスクロールしたり、ネット上にロードされたフォト アルバムをスワイプしたりします。
  5. ライブラリを他の種類のデータにも使用できるようにします。

詳細とチュートリアルについては、github著者のブログをご覧ください。

于 2012-08-22T09:30:43.467 に答える