2010-06-08 17 views
2

Mon problème est simple à décrire mais il semble difficile à résoudre. Le problème est le chargement des icônes, avec une classe personnalisée comme IconDownloader.m fournie par un exemple officiel d'Apple, évitant les plantages si je libère la vue.IconDownloader, problème avec téléchargement paresseux

J'ai ajouté la classe IconDownloader à mon application, mais il est clair que cette approche n'est bonne que si la tableView est la racine. Le gros problème est quand la vue n'est pas la racine. Fe: si je commence à faire défiler ma deuxième vue (l'application charge maintenant les icônes) et, sans quitter le temps de terminer le téléchargement, je retourne à la racine, le plantage de l'application parce que la vue doit être mise à jour avec de nouvelles icônes n'existe plus.

Une solution possible pourrait être d'implémenter un OperationQueue dans la vue, mais avec cette approche je dois arrêter la file d'attente quand je change la vue et la redémarrer quand je reviens et que l'idée d'avoir N files d'attente ne fait pas moi enthousiaste.

Quelqu'un a trouvé une bonne solution à ce problème?

Répondre

5

réponse est simplement, utilisez la méthode "cancelDownload" dans dealloc.

par exemple.

- (void)dealloc { 

for (NSIndexPath *indexPath in [imageDownloadsInProgress allKeys]) { 
    IconDownloader *d = [imageDownloadsInProgress objectForKey:indexPath]; 
    [d cancelDownload]; 
} 
//... 
    [super dealloc]; 
} 

bouger parfaitement :-)

+0

copain Merci ... :) – Hisenberg