Вопрос

я использую SDWebImage В моем приложении загружать и кэшировать изображения из Интернета. Это работает как очарование, но единственная проблема заключается в том, что всякий раз, когда я выхожу из своего приложения, даже на мгновение, кэш изображений очищается, и все изображения должны быть загружены снова. Это особенно проблема, когда подключение к Интернету медленно. Я бы хотел, чтобы изображения были сохранены, когда я вернусь в приложение. Кто -нибудь знает, как это достичь?

Это было полезно?

Решение

Перейдите на 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