【问题标题】:Memory Problem - Release whole ViewController?内存问题 - 释放整个 ViewController?
【发布时间】:2010-06-15 16:09:20
【问题描述】:

我正在使用带有几个选项卡的 TabBarController,并且在切换选项卡和内容时出现内存问题。当我转到另一个 ViewController 时,有没有办法释放和释放所有内容?

所以当我使用 ViewController #1 进入 Tab#1 并使用 ViewController #2 进入 Tab#2 时,如何释放 ViewController #1 占用的所有内存?

谢谢! 塞巴斯蒂安

【问题讨论】:

    标签: iphone xcode memory-management


    【解决方案1】:

    标签栏控制器保留其所有视图控制器,因此除非您从标签栏中删除相应的标签,否则您无法释放视图控制器占用的所有内存。然而,一个视图控制器通常不应该需要很多内存,除了它的视图。确保您在viewDidUnload 中发布您的所有出口(以及可以在viewDidLoad 中重新创建的所有其他内容)。如果您的视图控制器拥有大量其他数据,您应该在didReceiveMemoryWarning 中发布它们,如果您以后可以重新创建它们。

    【讨论】:

    • Thx :) 还有一个问题......在我的 ViewController 的 viewDidLoad 中,我正在构建一个 UIScrollview:myScroller = [[UIScrollView alloc] initWithFrame:CGRectMake ...我添加了很多myScroller 的子视图。释放整个滚动条及其子视图的最佳方式是什么?我应该在哪里做?当我释放它时,我必须在 viewWillAppear 中重建它,以便在用户返回选项卡时重建它,对吗?
    • 您应该阅读viewDidLoadviewDidUnload 之间的关系。您在viewDidLoad 中创建的所有内容以及您保留的所有NIB 插座,您必须在viewDidUnload 中发布。 viewWillAppear: 与此无关。您当然不必在该方法中重新创建您的视图,因为viewDidLoad 将在需要时被调用。
    猜你喜欢
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多