Frage

ich benutze SDWebImage in meiner App zum Laden und zwischen Bildern aus dem Web. Es funktioniert wie ein Zauber, aber das einzige Problem ist, dass wenn ich meine App beende, auch für einen Moment der Bildcache gelöscht wird und alle Bilder erneut heruntergeladen werden müssen. Dies ist insbesondere ein Problem, wenn die Internetverbindung langsam ist. Ich möchte, dass die Bilder beibehalten werden, wenn ich zur App zurückkomme. Weiß jemand, wie man das erreicht?

War es hilfreich?

Lösung

Gehen Sie zu sdimagecache.m und suchmethode - (id) initWitHNAMEPACE: (nsstring *) ns dort finden Sie einen solchen Code:

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

Fühlen Sie sich frei, etwas zu kommentieren oder etwas zu ändern, wenn Sie möchten. Ich würde eine Option machen, um diese Codezeilen auszuschalten.

Andere Tipps

Stellen Sie sicher, dass Sie das nicht einstellen maxCacheSize von [SDImageCache sharedImageCache], Wenn es festgelegt ist, wenn die App zum Hintergrund wechselt, werden Cache -Dateien gelöscht, um die zu passen maxCacheSize.

in cleanDisk Methode, Sie können sehen, dass vor dem Entfernen von Dateien eine Überprüfung vorliegt

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

Also wenn maxCacheSize ist nicht gesetzt, es wird nichts tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top