2010-12-10 37 views
0

Lors de la compilation de mon application avec LLVM, à peu près les seules erreurs que je reçois sont:Releasing UIViewControllers et analyse statique LLVM

Potential leak of an object allocated on line xxx 

Ceci est en réponse à un code créant et en poussant un nouveau UIViewController sur un UINavigationController:

FooViewController *vc = [[FooViewController alloc] initWithNibName:@"FooViewController" bundle:nil]; 
vc.title = @"FooFoo"; 
[self.navigationController pushViewController:vc animated:YES]; 

donc je suppose que cela suggère que je mets cela après la dernière ligne:

[vc release]; 

Mais chaque fois que je fais cela, il provoque des erreurs EXC_BAD_ACCESS. Je ne vois pas pourquoi je le lâcherais de toute façon, puisque je veux qu'il reste en mémoire, n'est-ce pas? Comment pourrais-je contourner cela pour rendre le compilateur LLVM heureux?

+0

C'est une fuite, montrez plus de code pour voir ce qui ne va pas. Ou utilisez NSZombies pour trouver d'où provient le mauvais accès. –

Répondre

2

Votre contrôleur de navigation conservera le contrôleur de vue, vous n'avez donc pas besoin de le faire. (C'est à dire: la ligne [vc release]; devrait être là.)

En tant que tel, je suppose que le problème avec l'EXC_BAD_ACCESS se trouve ailleurs, mais il est difficile de le dire sans d'autres informations environnantes.

+0

merci, le problème était en fait parce que je libérais une propriété dans mon dealoc – cannyboy