-(IBAction)customizeYourGameButtonClicked:(id)sender {
[self playHumanHitSound];
self.customizeYourGameViewController = [[CustomizeYourGameViewController alloc]
initWithNibName:@"CustomizeYourGameViewController" bundle:nil];
[self.navigationController
pushViewController:customizeYourGameViewController animated:YES];
[customizeYourGameViewController release];
}
无法理解为什么会泄漏。我将customizeYourGameViewController设置为属性并合成它。
答案 0 :(得分:3)
看来customizeYourGameViewController
是您班级的财产。它会保留吗?如果是这样,customYourGameViewController的@synthesized setter正在进行保留,你需要在某个地方发布。
虽然,考虑到这一点,我想知道:为什么customizeYourGameViewController
属性?除非你在其他地方与控制器通信,否则它应该只是一个局部变量。
-(IBAction)customizeYourGameButtonClicked:(id)sender {
[self playHumanHitSound];
id customizeYourGameViewController = [[CustomizeYourGameViewController alloc]
initWithNibName:@"CustomizeYourGameViewController" bundle:nil];
[self.navigationController
pushViewController:customizeYourGameViewController animated:YES];
[customizeYourGameViewController release];
}
然后移除ivar并移除属性。
答案 1 :(得分:0)
您正在分配CustomizeYourGameViewController
但未发布它。进行以下更改。
[[[CustomizeYourGameViewController alloc] nitWithNibName:@"CustomizeYourGameViewController" bundle:nil] autorelease];
你可以摆脱最后的
[customizeYourGameViewController release];
我不确定它在做什么(你有一个名为customizeYourGameViewController
的iVar),但它可能没有做你认为它正在做的事情。