initWithNibName之后的额外保留计数

时间:2010-05-24 03:20:12

标签: objective-c cocoa

调用initWithNib后,我有额外的保留计数。 什么可能导致这个? (笔尖中没有引用插座)

StepViewController *stepViewController = [[StepViewController alloc] initWithNibName:@"StepViewController" bundle:nil];
[self.navigationController pushViewController:stepViewController animated:YES];
[stepViewController release];
NSLog(@"nextStep stepViewController retain count %i", [stepViewController retainCount]);

上述结果的保留计数为3 ...

感谢您提供有关如何排查问题的建议

2 个答案:

答案 0 :(得分:7)

你在做什么故障排除?这里没有错。 -retainCount不是你的业务,几乎没有告诉你系统。每个自动释放的对象都会有一个比你想象的更高的显着retainCount。如果内部对象对此对象感兴趣,则它们将具有您可能或可能不期望的自己的保留。

您的业务是平衡自己的保留和发布。系统的其余部分负责平衡他们的。你不应该猜测它,如果你这样做,-retainCount不太可能对你有所帮助。它几乎总是误导而不是有用。

实际上是否存在您关注的泄密事件?

答案 1 :(得分:0)

您必须查看源代码或API文档才能找到答案。但是,nvaigation控制器有一个并且从xib加载的视图有一个是合乎逻辑的,所以可能是另一个由导航控制器中的东西完成的将是我的猜测。