0
 -(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
    }

在我的代码中,保留计数异常增加。我浪费了很多时间。请提供任何帮助。

4

2 回答 2

1

对象的绝对retainCount 是没有意义的。

有关详细信息,请参阅: http ://www.whentouseretaincount.com。

您看到的保留计数是框架的内部实现细节。它们实际上是毫无意义的。保留计数很可能与该代码中的一样高,因为您将视图控制器与动画纠缠在一起,这需要多个引用和一些复杂的幕后问题。

您发布的代码不是问题。

使用“仅跟踪实时引用”和“跟踪引用计数”的分配工具。然后重现您的泄漏并点击进入相关对象的保留/释放事件清单。这将为您提供对象被保留(和释放)的确切位置的列表,这将告诉您确切为什么它仍在内存中。

于 2013-01-29T07:33:23.603 回答
0

实际上我有一个财产

@property(nonatomic, retain) IBOutLet UITableView myTableView;

我正在从 nib 文件中获取参考。我刚刚用assign替换了retain。并且问题解决了。

于 2013-02-01T11:07:47.690 回答