1

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

4

2 に答える 2

2

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];

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

于 2013-12-09T13:50:39.900 に答える
1

を設定しないでください。maxCacheSizeアプリ[SDImageCache sharedImageCache]がバックグラウンドに移行するときに設定されている場合、に合わせてキャッシュ ファイルがクリアされますmaxCacheSize

メソッドでcleanDiskは、ファイルを削除する前にチェックがあることがわかります

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

そのため、maxCacheSize設定されていない場合は何もしません。

于 2014-01-07T05:42:15.820 に答える