SDWEBIMAGE-バックグラウンドの入力時に画像キャッシュをクリアしないでください

StackOverflow https://stackoverflow.com/questions/20353551

質問

私が使う SDWebImage 私のアプリでは、Webから画像をロードしてキャッシュします。それは魅力のように機能しますが、唯一の問題は、アプリを瞬時に終了するときはいつでも、画像キャッシュがクリアされ、すべての画像を再度ダウンロードする必要があることです。これは、インターネット接続が遅い場合に特に問題です。アプリに戻るときに画像を保持したいと思います。誰かがこれを達成する方法を知っていますか?

役に立ちましたか?

解決

sdimagecache.mに移動してメソッドをシーク - (id)initwithnamespace :( nsstring *)nsそこにそのようなコードがあります:

// Subscribe to app events
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(clearMemory)
                                                 name:UIApplicationDidReceiveMemoryWarningNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(cleanDisk)
                                                 name:UIApplicationWillTerminateNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(backgroundCleanDisk)
                                                 name:UIApplicationDidEnterBackgroundNotification
                                               object:nil];

必要に応じて、自由にコメントしたり、変更したりしてください。これらのコード行をオフにするオプションを作成します。

他のヒント

設定しないようにしてください maxCacheSize[SDImageCache sharedImageCache], 、アプリがバックグラウンドに移動したときに設定されている場合、キャッシュファイルをクリアして適合します maxCacheSize.

cleanDisk 方法、ファイルを削除する前にチェックがあることがわかります

if (self.maxCacheSize > 0 && currentCacheSize > self.maxCacheSize)
{
// ...
}

だから maxCacheSize 設定されていません、それは何もしません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top