Question

j'utilise SDWebImage dans mon application pour charger et mettre en cache des images du Web. Cela fonctionne comme un charme, mais le seul problème est que chaque fois que je quitte mon application, même momentanément, le cache d'image est effacé et que toutes les images doivent être téléchargées. C'est particulièrement un problème lorsque la connexion Internet est lente. J'aimerais que les images soient conservées lorsque je reviendrai sur l'application. Est-ce que quelqu'un sait comment y parvenir?

Était-ce utile?

La solution

Allez sur sdimageCache.m et recherchez la méthode - (id) initwithNamespace: (nsstring *) ns là vous trouverez un tel 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];

N'hésitez pas à commenter ou à changer quoi que ce soit si vous le souhaitez. Je ferais une option pour désactiver ces lignes de code.

Autres conseils

Assurez-vous de ne pas définir le maxCacheSize de [SDImageCache sharedImageCache], s'il est défini lorsque l'application passe à l'arrière-plan, il effacera les fichiers de cache pour s'adapter au maxCacheSize.

dans cleanDisk Méthode, vous pouvez voir qu'il y a un chèque avant de supprimer les fichiers

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

donc si maxCacheSize n'est pas défini, il ne fera rien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top