【问题标题】:Memory management with changing rootViewController of window通过更改窗口的 rootViewController 进行内存管理
【发布时间】:2014-04-16 06:24:30
【问题描述】:

我正在非 ARC 应用程序中动态更改窗口的 rootViewController。

我的问题是我需要释放之前分配的 rootViewController 吗?之前分配的 rootViewController 是如何管理内存的?

我的第二个问题是关于 newrootViewController。我如何为窗口的新 rootViewController 管理内存。

任何帮助将不胜感激......

【问题讨论】:

  • 你应该使用 ARC!如果您不能在任何地方使用它,您可以按文件打开它。只需为您处理根视图控制器的此类打开它(视图控制器不必打开它,只需更改它的类即可)。将编译选项-fobjc-arc 添加到那个翻译单元!

标签: ios memory-management


【解决方案1】:

Jason 在上面的评论中是对的,实际上很少有理由不使用 ARC。自动引用计数与手动引用计数一样有效。

记住这不是垃圾回收,保留和释放语句只是在编译时添加。

要回答您的问题,如果您在 rootViewController 上调用了 alloc / newcopy,那么您必须释放之前分配的控制器。

请记住,作为内存管理势利小人并不是不使用 ARC 的充分理由! ;)

关于 newRootViewController 对象,一旦你将它设为窗口的“根视图控制器”,窗口就会保留它,因此你可以释放它。

也看看这个问题:Retaining rootViewController?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多