Je crée/pousse mon ViewController, affiche quelques informations et retourne à mon RootViewController. Pendant que je navigue en arrière les accidents de l'application (EXC_BAD_ACCESS). Avec Instruments, j'ai découvert que le dealloc de mon ViewController est appelé, ce qui libère ma classe wrapper. Dans ma classe wrapper, la méthode dealloc est également appelée. Ce dealloc libère parsedJson
(propriété conservée) et à droite, puis l'application se bloque. Il est étrange que le nombre de retards tombe de 1 à -1 malgré seulement un malloc et une libération a été faite.SBJsonParser: L'application se bloque si je ne conserve pas la valeur de retour
Si je conserve le résultat parsedJson
retourné, l'application ne plante pas et je ne trouve pas de fuite. Je ne peux pas faire de release/autorelease parce que l'application se bloquerait à nouveau.
Avec NSZombieEnabled je reçois
* - [Communiqué CFDictionary]: message envoyé à l'instance désallouées 0x6d51aa0
Je reçois ce zombie après avoir fait un changement. Avant que j'utilise une propriété et Interface Builder pour mon contrôleur de vue et moi n'avons pas eu un accident, parce que le contrôleur de vue n'a pas été libéré immédiatement. Maintenant, je fais ceci:
MyViewController *myViewController = [[MyViewController alloc] init];
[[self navigationController] pushViewController:myViewController animated:YES];
[myViewController release];
myViewController = nil;
Où est l'erreur? Je ne peux pas retenir parsedJSON
sans une version. Je ne publie jamais parsedJson
à l'exception du dealloc. La bibliothèque utilisée contient-elle une erreur?
Je définis la propriété comme ivar = objet. Je n'ai pas réalisé ce fait, que je dois utiliser la méthode setter (self.ivar ou [self setIvar: myVariable]). Merci un million pour ça! – testing