解雇后,模态视图不会自行释放

时间:2012-08-15 04:19:30

标签: iphone objective-c ios

我一直面临一个解雇模态视图的奇怪问题。

我提出了一个这样的模态视图:

 ResepiDetail *detail =(ResepiDetail*)[[ResepiDetail alloc]init];
 [self presentModalViewController:detail animated:YES]; 

并使用后退按钮将其解雇:

[self dismissModalViewControllerAnimated:YES];

在此之后,视图会自行解除并回到上一个视图,但它不会从内存中释放出来。我通过发送通知消息找到了它,并且该视图收到了它。此外,我试图跟踪VM内存分配,似乎视图仍在内存中。

我正在使用ARC并使用相同的方法用于另一个完美运行的视图。

1 个答案:

答案 0 :(得分:0)

代码很好,已发布,所以这里有一些关于如何继续的提示:

某些您的视图控制器尚未解除分配的确定方法是覆盖dealloc并记录可识别的内容。您仍然可以在ARC中执行此操作,只是不要显式调用super。如果您没有按预期查看日志,则表示您遇到了问题。

假设您确定您确实遇到了问题,那么问题就在于找到保留周期。如果问题是ResepiController的实例没有被释放,那么你需要寻找......

  1. ResepiController类之外的任何代码,其strong引用strong。例如,如果您的类注册为其他类的代理,请确保代理未使用self引用。
  2. 任何可能隐含保留{{1}}的内部块。程序中的任何位置是否有任何块可能在您认为应该发布时对控制器有引用?