-(void)NewButton
{
ApplianceViewController *VC = [[ApplianceViewController alloc] initWithNibName:@"ApplianceViewController" bundle:[NSBundle mainBundle]] ;
NSLog(@"Retain count before pushViewController:%d",VC.retainCount);//prints1
[self.navigationController pushViewController:VC animated:YES];
NSLog(@"Retain count after pushViewController:%d",VC.retainCount);//prints 7
[VC release];
NSLog(@"Retain count after Release:%d",VC.retainCount);// prints 6
}
在我的代码中,保留计数异常增加。我有很多时间。请帮助。
答案 0 :(得分:1)
有关详细信息,请参阅:http://www.whentouseretaincount.com。
您看到的保留计数是框架的内部实现细节。它们实际上毫无意义。更可能的是,保留计数与该代码中的保留计数一样高,因为您将视图控制器纠缠成动画,这需要多个引用和一些复杂的幕后问题。
您发布的代码不是问题。
将分配工具与“仅跟踪实时参考”和“跟踪参考计数”一起使用。然后重现您的泄漏并单击相关对象的保留/释放事件清单。这将为您提供一个确切保留(和释放)对象的确切列表,它将告诉您它为什么仍然在内存中。
答案 1 :(得分:0)
其实我有一个属性
@property(非原子,保留)IBOutLet UITableView myTableView;
我从nib文件获取引用。我刚刚用assign替换了retain。问题解决了。