initWithNibName之后的额外保留计数

Opt*_*key 1 cocoa objective-c

调用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]);
Run Code Online (Sandbox Code Playgroud)

以上结果保留计数为3 ...

感谢您提供有关如何排除故障的任何建议

Rob*_*ier 7

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

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

实际上是否存在您关注的泄漏?

  • 应该从Cocoa框架中删除+100`retainCount`.看看它并想知道发生了什么只会导致悲伤.忘记它存在,你的生活会更简单. (5认同)