【问题标题】:memory full with views and crash内存充满视图和崩溃
【发布时间】:2012-03-05 11:53:50
【问题描述】:
我的申请有问题。我有 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];
这段代码是一个小例子
我的英语不好,我会说西班牙语:)
谢谢
【问题讨论】:
标签:
ipad
memory-management
view
memory-leaks
sdk
【解决方案1】:
问题是你传递了一个分配的对象而不是释放它。您需要将它放在一个变量中,以便您可以释放它:
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];
但这是一种糟糕的内存管理做法。你应该释放所有你知道不再需要的东西。