ios - 更改窗口的 rootViewController 的内存管理

标签 ios memory-management

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

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

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

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

最佳答案

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

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

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

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

关于 newRootViewController 对象,一旦您将其设为窗口的“ Root View Controller ”,窗口就会保留它,因此您可以随后释放它。

也看看这个问题:Retaining rootViewController?

关于ios - 更改窗口的 rootViewController 的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23101595/

相关文章:

ios - ObjectiveC mutableCopy 如何在 swift 中工作

ios - 在 iPad 上以模态方式呈现 ModalViewController

ios - 替换/更新 ASCollectionNode 中的布局

c++ - 在类(class)特定版本的 placement new 中做什么?

c++ - 堆栈分配的 vector 如何在 C++ 中展开?

ios - 以编程方式注册 Asterisk

ios - 在 Storyboard 中的 UITabBarController 中重新排序 View Controller (XCode 4.6)

pointers - 垃圾引用和悬空引用有什么区别?

c - valgrind 测试内存管理出错?

delphi - 当 case 变量未命名时,如何判断变体记录中哪种情况有效,以及如何创建此类记录的值?