-(id)viewWillDisappear:(BOOL)animated
{
report_memory_str(@"BEFORE RELEASE viewWillDisappear");
self.view = nil;
report_memory_str(@"AFTER RELEASE viewWillDisappear");
}
当我的视图消失时,我尝试在推送到另一个控制器之前释放当前视图, 我没有更多的免费记忆,为什么?如何获得更多的免费记忆?
2009-08-10 09:51:31.263 App[4622:207] BEFORE RELEASE viewWillDisappear -- Memory in use (in bytes): 7880704
2009-08-10 09:51:31.280 App[4622:207] AFTER RELEASE viewWillDisappear -- Memory in use (in bytes): 7884800
答案 0 :(得分:0)
我会在viewDidDisappear:
而不是viewWillDisappear:
中发布视图。如果更改已设置动画,则在删除视图之前将需要该视图。我不确定superview是否保留并发布它的子视图,但这可能是为什么当视图仍然在视图层次结构中时,为什么你的视图不会被立即删除。
你可以尝试
答案 1 :(得分:0)
仅仅因为你调用release,并不意味着该对象已经被释放。如果保留计数为0,则标记为取消分配。也许在你试图释放的对象的dealloc上设置一个断点,看看它是否在你的内存检查之前或之后被调用。