2010-11-23 12 views
0

J'ai une application basée sur table qui télécharge les flux rss à partir du web. J'ai donc view1, je clique sur une ligne dans le tableau et les résultats s'affichent sur view2. Cela fonctionne très bien mais si je reviens à view1 pendant que les données sont en cours de téléchargement. Il se bloque!mon application se bloque si je change de vue pendant le téléchargement des données

Des idées ce que je dois changer (son nsxmlparser d'ailleurs)?

Merci

Répondre

1

Un peu plus d'informations sur le problème serait utile de comprendre ce qui se passe, mais en fonction de ce que vous avez publié mon estimation serait que vous définissez un delegate pour quelque chose (le NSXMLParser ou la connexion URL, ou peut-être quelque chose d'autre) et quand vous revenez à view1, view2 est détruit, détruisant l'objet délégué et laissant celui qui était avec un pointeur delegate pendante.

+0

cela a du sens! Je vais y regarder – benhowdle89

+1

Oui, les réponses de filipe semblent pointer dans la bonne direction. Lorsque vous revenez (en supposant qu'il s'agit d'un contrôleur de navigation), définissez le délégué sur zéro, ou encore mieux assurez-vous que le téléchargement/analyse est annulé et libéré, afin que le contrôleur de navigation puisse supprimer correctement votre vue. Vous ne pouvez compter que sur les messages viewDidAppear/willAppear et viewWill/DidDisapper qui sont envoyés, pas sur viewDidUnload ou dealloc, le module navigationController peut choisir de laisser traîner votre vue. Donc, mettez le code "doit être exécuté une fois" dans "viewDidLoad" et "doit être exécuté à chaque fois que l'affichage apparaît" dans viewWill. – RickiG