0

私はiPhoneアプリケーションを開発しています。このアプリケーションでは、アプリに多数の画像がバンドルされており、新しい画像がダウンロードされてDocumentsディレクトリに配置されています。それらが必要なときは、それらが新しいのかバンドルされているのかわからないので、それをチェックする簡単なヘルパークラスを作成しました。

動作しますが、遅いです。どうすればスピードアップできますか?Documents dirからの画像をキャッシュする必要があることはわかっていますが、最も効果的な方法は何でしょうか。現在、コードは最適化されていません。どんな助けでも感謝します。

http://pastebin.com/L7WCqjxX

4

1 に答える 1

1

いくつかのヒント:

  • docsDir常に( )を検索するわけではなくNSSearchPathForDirectoriesInDomains、インスタンス変数に格納します(または、クラスメソッド[場合のように]静的変数に格納します)
  • 「スレッド化」する
    • メソッドをバックグラウンドで実行し、View Controller(または他の委任されたクラス)に送信するための委任プロトコルを作成します。+ (UIImage *)imageNamed:(NSString *)nameバックグラウンドスレッドで呼び出します。performSelectorOnMainThread画像がNSData/Pathから読み込まれるとき、画像がバックグラウンドで読み込まれ、次に画像が表示されることをViewController(!)に通知します(これにより、ジャークが大幅に回避されます)。
  • NSOperationQueueを使用して、マルチコアプロセッサの能力を最大限に活用することを検討してください。

SDWebImageを見てください...私が上であなたに言ったすべてのものに彼らは。

于 2012-04-09T08:22:46.243 に答える