0

A la fin de ce code:UINavigationController libérant Bonanza

UIViewController *viewController = [[UIViewController alloc] init]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[viewController release]; 
[self presentModalViewController:navigationController animated:YES]; 
[navigationController release]; 

Le contrôleur de navigation apparaissent de façon modale, comme d'habitude, mais quand je clique sur un bouton sur le viewController, il se bloque. En fait, le viewController a un nombre de retenue de 0. Si je commente l'une des deux versions, tout s'est mieux passé que prévu. J'ai vu ce code à peu près partout, qu'est-ce qui ne va pas?

Répondre

2

Le code que vous avez posté est correct, mais ailleurs vous êtes en train de libérer quelque chose.

Quelques choses à noter:

D'abord, never trust retainCount. Ensuite, assurez-vous que vous gérez correctement la mémoire de vos objets de plume comme indiqué here. Enfin, vous devrez utiliser la détection NSZombie dans Instruments pour déterminer votre véritable problème. This video fournit un bon comment.

+0

Pour le retainCount, je suis sûr que je l'utilise correctement. Je n'utilise aucune plume sauf pour MainWindow.xib par défaut. Je ne sais pas si NSZombie aidera dans ce cas, mais en fait je devrais essayer. – gurghet

+0

Le fait est que vous * ne pouvez pas * utiliser retainCount correctement. Le nombre renvoyé ne doit pas être approuvé. C'est un nombre sans signification. –

+0

Je sais mais si l'application est inactive, après une seconde ou deux, il donne généralement un nombre utile. Je n'ai jamais utilisé NSZombie avec des instruments, semble beaucoup plus pratique! – gurghet

Questions connexes