iPhone - insertSubview使ObjectAlloc跳转

时间:2009-09-17 05:20:10

标签: iphone uiviewcontroller delegates subview

每当我添加一个新的viewController时,我的ObjectAlloc跳得很高,永远不会回来。甚至在调用removeFromSuperview之后。这是正常的吗?

if((UIButton *) sender == gameArcadeBtn) {
        GameArcade *gameArcadeController = [[GameArcade alloc] 
                              initWithNibName:@"GameArcade" bundle:nil]; 
        self.gameArcade = gameArcadeController; 
        [gameArcadeController release]; 
        [self.view insertSubview:gameArcadeController.view atIndex:1];
    }

2 个答案:

答案 0 :(得分:0)

实例化视图总是创建许多对象。只要此视图在内存中或尚未自动释放,对象将保留在内存中。因此,回答你的问题,这是正常的。

听起来你担心内存使用情况,虽然重要的是要观察对象的分配,以便它也不会 ,找到你的应用程序泄漏更为重要。

一些内存管理提示:
1)做懒加载。仅在用户请求时加载您的视图,而不是在应用程序开头的所有视图中 2)当你不再需要它时,删除你可能可以做的一切。这意味着在viewWillAppear和viewDidDisappear中进行大量工作 3)了解@properties以及它与自动释放的关系,并且不要将属性用于所有事情 4)尽可能吸引人,避免自动释放并在不再需要时手动释放对象。

答案 1 :(得分:0)

这可能是因为你仍然在课堂上保留视图的控制器。尝试释放