1

我有UINavigationController一个UIViewController推到它上面。在我viewController的 sview中,我有两个 subview UIScrollViewscrollview我每次viewWillAppear在我的方法中重新创建这些sviewController并将它们作为子视图添加到我的视图控制器的视图中。我正在使用 ARC,我应该在viewDidDisappear方法中破坏两个滚动视图吗?什么是内存使用的更好做法。

编辑:我做了一些调查,没有删除滚动视图并将它们设置为 nil 在viewDidDisappear方法中,它们没有被释放。viewcontroller 的视图获得了越来越多的子视图viewWillAppear。正如我在评论中提到的,我从不释放我的主视图控制器。它总是停留在导航控制器的堆栈上。为什么我必须手动释放滚动视图?

4

1 回答 1

1

可能根本不需要做任何事情。如果您的 UIViewController 从屏幕上移除然后被释放,它将自动释放其视图层次结构(包括您添加的子视图)。一个简单的检查方法是覆盖dealloc您感兴趣的类的方法(使用添加到类的 ObjC 类别方法),并记录一条消息以指示它们已被删除。

于 2013-08-19T20:12:27.087 回答