【问题标题】: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];
    

    但这是一种糟糕的内存管理做法。你应该释放所有你知道不再需要的东西。

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2022-11-16
      • 1970-01-01
      • 2012-01-28
      • 2011-05-10
      • 1970-01-01
      • 2015-05-11
      • 2011-10-15
      • 2012-11-11
      相关资源
      最近更新 更多