2010-05-21 5 views
3

Je cocos2d, j'utilise pushScene et replaceScene pour passer à la scène suivante. Mais, je suis confus que nous devrions utiliser?Quand utiliser pushScene et replaceScene?

Quand je me sers replaceScene application dans certains endroits se bloque et donnant des erreurs comme

-[UITextView length]: unrecognized selector sent to instance 0x842a750 
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UITextView length]: unrecognized selector sent to instance 0x842a750' 

Mais, dans mon programme je ne passe pas à la longueur UITextView. Mon programme est de cette manière
Dans scene1 j'ai UITextView, et je remplace cette scène par scene2. Mais, quand j'utilise pushScene en présence de replaceScene, cela fonctionne bien. S'il vous plaît me préciser ce que l'on devrait utiliser dans quels cas?

Merci

Répondre

3

Vous voulez utiliser replaceScene dans presque tous les cas. La méthode pushScene conserve la scène précédente en mémoire, ce qui est probablement la raison pour laquelle elle ne plante pas. Quelque chose à propos de cette scène n'est pas tout à fait raison et quand il se désalloue après un replaceScene, l'accident se produit. Cela n'a rien à voir avec le système de scène de cocos2d.

Votre UITextView dans scene1 est probablement publié trop souvent. Si elle est créée en tant qu'objet autorelease, ne lui envoyez pas le message de libération.

Questions connexes