我的申请有问题。我有18个视图但是当你查看每个步骤消耗更多内存时。应用程序崩溃后。
while ([self.view.subviews count] > 0) {
[[self.view.subviews lastObject] removeFromSuperview];
}
[self presentViewController:[[proj_lletrac_14_ontroller alloc] init] animated:NO completion:nil];
[proj_lletrac_14_Controller release];
[proj_lletrac_13_Controller release];
此代码是一个小例子
我的英语很糟糕,我说西班牙语:)
由于
答案 0 :(得分:0)
问题是你传入一个已分配的对象而不是释放它。你需要将它放在变量中,以便释放它:
proj_lletrac_14_ontroller *viewController = [[proj_lletract_14_ontroller alloc] init];
[self presentViewController:viewController animated:NO completion:nil];
[viewController release];
因此,在步骤中,您将实例分配给变量:
proj_lletrac_14_ontroller *viewController = [[proj_lletract_14_ontroller alloc] init];
将实例传递给presentViewController方法:
[self presentViewController:viewController animated:NO completion:nil];
现在您不必担心实例,因此您释放已分配的对象:
[viewController release];
简单的内存管理。
在传入函数时永远不要分配对象,除非你将它粘贴在自动释放池中:
[self presentViewController:[[[proj_lletrac_14_ontroller alloc] init] autorelease] animated:NO completion:nil];
但这是糟糕的内存管理实践。你应该释放你不知道的所有你不需要的东西。