dealloc非常奇怪的行为 - 没有被调用

Tar*_*riq 5 iphone delegates uiviewcontroller dealloc

我已经测试了我的所有viewControllers dealloc方法.并且所有这些都在调用popViewControllerAnimated时被正确调用.

但是只有一个控制器的dealloc方法没有被调用.我无法弄清楚这个问题.

在推送到该控制器时,我已正确编写以下代码:

AController *contr = [AController alloc]initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:contr animated:YES];
[contr release];
Run Code Online (Sandbox Code Playgroud)

当我从控制器回来时,我写道:

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

这是非常奇怪的行为,因为这段代码写在许多控制器上并且工作正常.

Jak*_*ake 19

如果它没有被调用它仍然活着.尝试使用仪器来找到它.如果您在工具中使用分配工具,您应该能够在分配列表中找到类(按名称)并查看它是否仍然存在.你甚至可以看到由谁(我假装课程是人)保留它.

  • 这就是我所需要的,在我的非ARC项目中,我的dealloc方法用于调用.我使用了仪器'分配',选择'创建并且仍然活着',将统计信息更改为'对象列表',注意'类别'显示类名称,"责任图书馆"检查"应用名称".在地址旁边选择箭头将显示详细屏幕并确保"RefCount"达到0 (5认同)

Syl*_* G. 7

如果未调用dealloc,则可能有另一个保留它的对象.

检查可能使用此委托的对象是否保留它.