2011-09-07 7 views
0

J'ai une application qui se connecte à un serveur pour obtenir des données. Eh bien, j'utilise NSThreads et semble fonctionner parfaitement en simulateur. une fois que j'ai installé l'application sur mon appareil iPhone, il cesse de fonctionner.Travail NSThread sur le simulateur mais pas sur le périphérique

Je ne sais pas si c'est un problème commun.Si oui quelle peut être l'alternative à NSThread?

REMARQUE: j'ai essayé NSOperations mais j'ai toujours le même problème.

+2

Ca arrête de fonctionner ... Très vague ... Est-ce que ça plante? Avez-vous des logs, des débogueurs de bactrace, etc? – Macmade

+0

Il ne plante pas les fonctions que j'ai utilisé NSThreads pour appeler ne sont pas appelés. quand j'appelle ces fonctions sans NSThread cela fonctionne normalement. Non, je ne l'ai pas en ce moment.Sorry – ali

Répondre

0

Si les deux NSThread et NSOperation ne fonctionnent pas alors vous avez un problème plus fondamental avec votre code. Les deux fonctionnent aussi bien sur l'appareil que sur le simulateur (en fait, ils seraient un peu inutiles). Je vous recommande fortement d'enquêter sur la question apparente de plus près. Il est beaucoup plus probable que vous ayez une sorte de condition de concurrence que le timing particulier que vous obtenez sur votre appareil avec la version actuelle des déclencheurs du système d'exploitation alors que votre simulateur avec la version actuelle du SDK ne le fait pas. L'erreur la plus commune faite sur iOS dans ce domaine est probablement l'échec d'observer que UIKit est dans la partie principale utilisable sur le fil principal seulement.

Mais pour répondre à la question exactement comme mettre: les principales alternatives pour effectuer le travail de manière asynchrone sont:

Notez également que NSURLConnection a un mode d'opération asynchrone construit dans ce qui rend compte au thread principal, ce qui signifie que vous n'avez pas à faire quelque chose d'explicite pour vous-même. Apple vous recommande fortement d'utiliser cela plutôt que de construire votre propre système, car il est écrit pour être beaucoup plus puissant et processeur efficace qu'une solution NSThread pourrait être.

Questions connexes