每当我添加一个新的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];
    }
有帮助吗?

解决方案

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

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

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top