【问题标题】:Memory Management for Presenting and Dismissing in ARC based app基于 ARC 的应用程序中呈现和关闭的内存管理
【发布时间】:2012-07-28 18:46:43
【问题描述】:

我的应用遇到了一个有趣的问题。我的一些视图包含许多元素,每个元素都在 50MB 左右。我已经在我的项目中启用了 ARC,但在呈现和关闭视图控制器时确实存在问题。我认为我使用了错误的方法。

我有 5 个快捷按钮可以在视图之间切换。目前我正在这样做:

AboutVC *aboutview = [[AboutVC alloc]initWithNibName:@"AboutVC" bundle:nil];
[self presentModalViewController:aboutview animated:YES];

所以每次如果用户想要返回着陆视图(或切换到另一个视图),都会分配相同数量的内存(50MB)。因此,在切换 4-5 次后,应用程序崩溃了。

【问题讨论】:

    标签: iphone ios memory-management automatic-ref-counting


    【解决方案1】:

    您需要确保正确地驳回您的观点。如果它们被添加到任何类型的集合类中,则必须将它们从那里删除,以便 ARC 的魔法发挥作用。您需要像这样(在 AboutVC 类中)关闭模态视图控制器:[self dismissModalViewControllerAnimated:YES];

    【讨论】:

    • 所以你的意思是这样的 转到 AboutVC : AboutVC *aboutview = [[AboutVC alloc]initWithNibName:@"AboutVC" bundle:nil]; [self presentModalViewController:aboutview Animation:YES];然后从那里转到另一个视图:[self dismissModalViewControllerAnimated:YES]; aVC *view2 = [[aVC alloc]initWithNibName:@"view2" bundle:nil]; [自我presentModalViewController:view2动画:YES];我说的对吗?
    • 在我看来,您正在错误地使用模态视图...听起来您想让每个视图导航到它旁边的那个...为此您应该考虑使用导航控制器。模态控制器旨在被推送到导航堆栈上,并在添加更多视图之前弹出。
    猜你喜欢
    • 2013-06-18
    • 2012-11-15
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 2011-07-19
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多