2010-03-27 158 views
1

泄漏应用程序告诉我,下面的函数导致内存泄漏,我找不到原因。pushViewController导致内存泄漏

-(void)viewGameList { 
GameListController *gameListViewController = [[GameListController alloc] initWithNibName:@"GameListController" bundle:nil]; 
gameListViewController.rootController = self; 
[self.navigationController pushViewController:gameListViewController animated:YES]; 
[gameListViewController release]; 

}

它告诉我,这行导致128字节内存泄漏。

[self.navigationController pushViewController:gameListViewController animated:YES]; 

我是否缺少明显的东西?

+0

声明'.rootController'属性的方式如何? – kennytm 2010-03-28 06:18:30

+0

我不确定代码是否会在评论中正确显示,但这是GameListController.m中问题的答案: @class RootViewController; @interface GameListController:UIViewController { \t RootViewController * rootController; } @property(nonatomic,retain)RootViewController * rootController; 任何想法,为什么我会在这里发生内存泄漏? – hookjd 2010-03-28 15:36:07

回答

1

关于iPhone内存管理的一条规则。

  • 子对象不得保留其父项。

所以,不要使用在财产申报保留,使用分配代替。