iOS:销毁viewDidDisappear中的 subview ?

标签 ios automatic-ref-counting

我有一个 UINavigationController ,上面有一个 UIViewController 。在我的 viewControllerview 中,我有两个 subview UIScrollView。我每次都会在 viewControllerviewWillAppear 方法中重新创建这些 scrollview,并将它们作为 subview 添加到我的 viewcontroller 的 View 中。我正在使用 ARC,我应该在 viewDidDisappear 方法中销毁两个 ScrollView 吗?内存使用的更好做法是什么。

编辑:我做了一些调查,并且没有删除 ScrollView 并将它们设置为 nil 在 viewDidDisappear 方法中,它们不会被释放。当调用 viewWillAppear 时, View Controller 的 View 会获得越来越多的 subview 。正如我在评论中提到的,我从未取消分配我的主视图 Controller 。它始终保留在导航 Controller 的堆栈中。为什么我必须手动释放 ScrollView ?

最佳答案

可能根本不需要做任何事情。如果您的 UIViewController 从屏幕上删除然后被释放,它将自动释放其 View 层次结构(包括您添加的 subview )。检查这一点的一个简单方法是重写您感兴趣的类的 dealloc 方法(使用添加到类中的 ObjC Category 方法),并记录一条消息以表明它们已被已删除。

关于iOS:销毁viewDidDisappear中的 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322200/

相关文章:

ios - 动态设置导航 Controller 标题

ios - 延迟加载 UI 元素/IBOutlets

Objective-C ARC - 方法是否保留 'self' ?

objective-c - 与 ARC 不一致的对象释放?

objective-c - 什么情况下这个对象会被ARC保留?

ios - Swift:Apple Mach-O 链接器错误(文件对于架构 x86_64 而言太小)

ios - 如何订阅更改图像

ios - Fabric.io Crashlytics 和 Answers 初始化

android - 如何绘制局部位图圆弧?就像一个圆形进度轮,但带有越来越多显示的位图。

iphone - 关于弱引用和保留循环的说明