2009-06-06 4 views
0

J'ai deux contrôleurs uiview. J'utilise NSThread dans le premier viewcontroller et son fonctionnement est parfait .. Quelque fois le thread était en cours d'exécution dans le firstviewcontroller, cette fois je veux aller Secondviewcontroller.Cette action arrête mon thread de firstviewcontrollr ..Erreur NSThread

Comment résoudre ce problème. .. Quelqu'un peut-il m'aider? Merci d'avance

Répondre

1

Ce serait bien si vous pouviez clarifier la question, car il est difficile de comprendre exactement ce que vous voulez faire et quel est le problème. En général, le code d'interface utilisateur doit toujours s'exécuter dans le thread principal. Cela est clairement indiqué dans la documentation Cocoa, et vous ne réussirez pas à avoir plusieurs threads essayant de contrôler l'interface utilisateur.

Si vous souhaitez exécuter du code dans d'autres threads et que ceux-ci influencent l'interface utilisateur, vous devez implémenter des mécanismes pour communiquer les informations au thread principal. Une méthode qui est très pratique est

de NSObject
performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait; 

Si vous voulez utiliser les notifications, vous devez les envoyer sur le thread principal aussi. Il est facile d'obtenir des bugs confus si vous ne respectez pas ce principe (bien que les choses semblent fonctionner au début).