【发布时间】:2014-03-09 06:19:23
【问题描述】:
我是 Objective C 的新手。我正在开发我的第一个应用程序。 - 它基本上由 2 个视图控制器组成,我使用 modal segue 在它们之间切换。主 vc 是一个菜单,它为每个菜单项加载具有不同属性的第二个 vc。 - 我注意到当我从一个 vc 切换到另一个时内存不断增加。这是我试图解决这个问题的尝试,但它没有任何区别,而且看起来也不干净。
-(void)viewDidDisappear:(BOOL)animated{
ViewController *me = self;
me = nil;
}
在这种情况下处理内存的最佳做法是什么?
【问题讨论】:
-
您最好在视图控制器之间切换时显示代码。顺便说一句,您的 viewDidDisappear 方法实现是错误的。不要那样做
-
如何从第二个控制器返回到第一个?
-
您的代码 sn-p 仅创建一个对对象的新本地引用,然后删除该本地引用(有效地将其保持在与
viewDidDisappear方法之前相同的状态)。这段代码并没有改变这样一个事实,即显然还有其他东西仍在保持对该 VC 的强烈引用。 “将其设置为nil”技术只有在您使用现有(希望是最后一个)对对象的最后一个strong引用时才有意义。您必须弄清楚为什么它没有被发布(可能是由于 matt 建议或 rdelmar 暗示的原因)。 -
我已经弄清楚是什么强烈引用了我的 vc。我使用 viewWillDisappear 使该对象为零,现在内存没有增加。
标签: ios objective-c memory uiviewcontroller segue