2010-11-12 9 views
2

Lorsque j'appuie sur un certain contrôleur de vue, je le fais glisser puis je répète un nombre apparemment aléatoire de fois que l'application tombe en panne avec l'erreur EXC_BAD_ACCESS.NSZombieEnabled FIXES mon application?

Je peux répliquer de façon fiable CHAQUE FOIS. Cela arrive surtout la deuxième fois que j'applique le contrôleur de vue, mais parfois il peut être le troisième ou le quatrième. J'ai donc décidé de définir NSZombieEnabled pour voir quel était le problème.

Mais avec cette option activée, le crash ne peut pas être répliqué. Tout ce qui est changé est je coche la case à côté de "NSZombieEnabled" dans la configuration de mon exécutable actif et l'application fonctionne parfaitement.

Avez-vous des idées à l'origine de cette situation?

Merci

+0

Testez-vous ceci dans un simulateur ou dans un appareil? –

Répondre

2

J'ai eu ce même problème avec une application iPhone dans le simulateur. Il lancerait un EXC_BAD_ACCESS lorsque j'appelais un contrôleur de vue particulier mais dès que NSZombieEnabled était activé, l'erreur disparaissait. Pour le réduire, j'ai commenté toutes les versions dans le dealloc du contrôleur de vue popp, qui empêchait l'application de se bloquer, puis les décompresser une à la fois jusqu'à ce qu'il plante à nouveau, révélant la variable incriminée.

Dans mon cas, il était en fait la déclaration de libération de la variable elle-même qui a été jeté la EXC_BAD_ACCESS

Je ne peux pas vous dire exactement comment le résoudre à partir de là autre que de ne pas libérer. J'ai réussi à le faire fonctionner correctement après avoir peaufiné et nettoyé le code, mais quand j'ai essayé d'annuler les modifications pour obtenir à nouveau l'erreur et affiner la correction précise, j'ai été incapable de reproduire le problème. Je l'ai eu sur le premier rouleau mais jamais plus. Peut-être qu'il y a quelque chose d'environnemental au travail?

Ce n'est pas une réponse exacte, mais peut-être que cela pointera quelqu'un dans la bonne direction.

+0

Vous avez raison, NSZombieEnabled ne semble pas ramasser une déclaration de libération ...:/:) –