【发布时间】:2014-07-26 13:10:53
【问题描述】:
我正在尝试解决“收到内存警告”问题。
我的应用有 2 个视图控制器,当您单击第一个视图控制器上的按钮时, 详细视图控制器出现。 详细视图控制器有一个继承 UIView 的视图,称为“topView”,并且该视图有许多子视图。 子视图也继承自 UIView,每个子视图有 2 个 UILabel。
我的问题是当您通过单击返回按钮返回到第一个视图控制器时, 'topView' 没有释放,即使我把下面的代码放在 viewDidDisappear 中。
如何释放topView的内存?
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[[self.topView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
self.topView= nil;
}
我错过了什么吗? 我想我走错了方向,所以请给我建议。
【问题讨论】:
-
当您说它没有被释放时,您确定您正在查看正确的对象吗?在您的应用程序上运行 Instruments,看看是否确实如此。我还建议运行静态分析器来检查常见的内存错误。
-
你是如何在 2 个控制器之间来回切换的?
标签: ios memory-leaks automatic-ref-counting