-(IBAction)startGameButtonClicked:(id)sender{
//gameViewController = NULL;
//[gameViewController release];
//[gameViewController dealloc];
if(!gameViewController){
gameViewController = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
}
appDelegate.ScoreID=0;
[gameViewController resetLevel];
[gameViewController resetTheGame];
[self.navigationController pushViewController:gameViewController animated:YES];
} <---Says the leak is here
Répondre
Chaque fois que le bouton est cliqué, vous créez un nouveau gameViewController et le placez dans self.navigationController.
Vous ne voulez pas en créer un nouveau à chaque fois.
comment je fais ça? – Steve
Faites de 'gameViewController' un ivar (variable d'instance) avec des propriétés et référencez-le comme' self.gameViewController'. –
mis en place gameViewController comme une propriété dans le .h
@property(nonatomic,retain) GameViewController *gameViewController;
et dans le .m
@synthesize gameViewController
utilisent alors la propriété lors de l'affectation
self.gameViewController = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
et libérer au fin
[self.navigationController pushViewController:gameViewController animated:YES];
[gameViewController release];
Libérez-vous le gameViewController plus tard? Et les méthodes resetLevel et resetTheGame sont-elles propres? –