2011-06-08 6 views
1

et par ne répond pas, je veux dire qu'après les trois premières connexions réussies, la quatrième connexion est initiée et rien ne se produit, aucun plantage, aucune fonction déléguée, aucune donnée n'est envoyée (selon wireshark). .. il se trouve juste là ?!Comment déboguer asynchrone NSURLConnection

Je me suis battu la tête contre cela pendant un jour et demi ... iOS 4.3.3 dernière xCode, arrive de la même manière sur un périphérique réel comme dans le simulateur. J'ai lu tous les messages de NSURLConnection dans les forums des développeurs ... Je suis à court de ressources. À partir de mon délégué d'application, je lance une connexion NSURLConnection asynchrone conformément aux documents Apple, en utilisant le délégué de l'application en tant que délégué pour la connexion NSURLConnection. Depuis mon applicationDidFinishLaunching ... Je déclenche les deux requêtes initiales qui retournent avec succès le XML que je passe ensuite à une file d'opération à analyser. Je peux même faire une boucle, répéter ces requêtes sans problème, les répéter 10 fois et ça marche très bien.

La série suivante de cinq requêtes est déclenchée par l'utilisateur. La première requête s'exécute avec succès et renvoie la réponse correcte, puis la requête suivante est créée et lorsqu'elle est utilisée pour créer un NSURLConnection (comme tous les autres), elle se trouve juste là.

Les appels de délégué normaux que je vois sur toutes les autres requêtes ne sont jamais vus. Rien ne passe par-dessus le fil selon Wireshark? J'ai réorganisé les requêtes et indépendamment de la requête, après le premier échoue le suivant (échoue comme ne fait rien, pas d'erreurs ou abandonne, se trouve juste là)

C'est évidemment dans mon code, mais je suis aveugle à cela.

Alors quels autres outils puis-je utiliser pour déboguer le NSURLConnection asynchrone ... comment puis-je savoir ce qu'il fait? si du tout.

Toutes les suggestions pour le débogage d'une connexion NSURLConnection ou d'autres moyens accomplir faire la même chose que NSURLConnection fait?

Merci pour toute aide que vous pouvez offrir ...

+0

... peut-être poster un peu de code ici? – makdad

+0

il y a une tonne de cela, c'est pourquoi je suis à la recherche de conseils sur la façon de déboguer le NSURLConnection. – morgman

Répondre

2

OK suivis vers le bas ... je regardais la décharge de la pile dans chaque fil que je suis sur le point de lancer chaque NSURLConnection, les trois premiers étaient tous dans le fil principal comme prévu ... le quatrième a fini dans un nouveau fil ?! Dans l'un de mes thread NSOperation?!?! Comme il s'est avéré que j'ai ajouté par inadvertance logique (?) Qui a commencé un mon NSURLConnection dans le dernier appel NSOperation à didFinishParsing: ainsi le NSURLConnection a été async démarré et puis le NSOperation s'est terminé ...>. Donc je vais déplacer le NSURLConnection hors du didFinishParsing et il devrait rester dans la boucle principale et je devrais être bon!

+1

Génial! Je me cognais la tête contre ça. La logique qui faisait ensuite mon appel HTTP a été lancée à partir d'un thread différent. Une fois que j'ai ajouté l'exécution sur le thread principal, mes requêtes HTTP ont à nouveau fonctionné. Cela m'avait troublé parce que ça fonctionnait jusqu'à ce que je mette du code autour. Donc pendant un moment, je devenais fou :) – ganta

Questions connexes