【问题标题】:UIViewController Memory Warning issuesUIViewController 内存警告问题
【发布时间】:2011-01-14 17:33:48
【问题描述】:

我的视图控制器发生了一些奇怪的事情。发布 applicationDidReceiveMemoryWarning 时,它会从堆栈中删除所有视图,而不是预期行为的可见视图(第二级视图)。但是,如果我随后导航回根视图,它还有一个返回按钮可以导航回自身。从那里开始,应用程序视图的行为非常奇怪,以至于应用程序毫无用处。

更奇怪的是,完全相同的二级视图(没有内存泄漏)可以在没有任何内存警告的情况下正常工作,但有时在应用启动时会导致内存警告,从而导致导航问题。该视图包含与以前相同的所有控件和数据,但有时可能会导致设备无法处理。这与启动时设备上的可用内存有关吗?这似乎只发生在硬件上。

有什么想法吗?

【问题讨论】:

    标签: iphone memory uiviewcontroller


    【解决方案1】:

    我发现了问题 - 毕竟这是我的代码。

    在应用程序启动时,我加载我的根视图控制器,然后在我的根视图控制器的 viewDidLoad 方法中,我告诉它在条件适用时加载第二个视图。

    当内存警告发生时,它会在退出第二个视图时重新创建根视图控制器,然后在仍然显示根视图的同时再次创建第二个视图。

    这会导致导航进入精神状态。

    【讨论】:

      【解决方案2】:

      到目前为止,我还不是记忆问题方面的专家。但是这种事情之后的奇怪行为向我表明,内存的删除并没有持续发生。也许仍然保留了一些引用并且应用程序认为这些是有效的引用,但实际上,不再分配内存。也有可能是内存被重新分配而旧的引用仍然存在,这也可能导致奇怪的行为。

      嗯,我在这里不能提供太多建议,只是你可以检查对未分配区域的引用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        相关资源
        最近更新 更多