2015-11-19 89 views
0

我想在viewDidLoad方法中打印视图控制器的保留计数。返回的值是3。保留计数的视图控制器

有人可以告诉为什么值3吗?

我的代码如下

@implementation ViewController 

    - (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     NSLog(@"Retain count in View Did Load is %ld", CFGetRetainCount((__bridge CFTypeRef)(self))); 

    } 
+0

作为答案表明,保留计数是没有意义的。即使对于调试,您也希望使用分配工具来查找泄漏。也就是说,每个“NSObject”都有一个'retainCount'属性。没有必要让Core Foundation获得这些信息。 – Avi

+0

如果您在启用ARC时直接调用'retainCount',我认为您会遇到编译器错误。 – EricS

回答

2

我就不会担心。 retainCount通常暂时高于您的预期。添加一个调试/单元测试的方法-dealloc,并确保当viewController被解雇时调用它,你会没事的。

2

嗯,这是25对我来说:

2015-11-18 19:53:51.323 test[61900:10880987] Retain count in View Did Load is 25 

你不能依靠保留计数为任何特定数量(但它不会是零)。

如果你真的想知道它是如何结束的地方一样,使用仪器:

instruments allocation trace

相关问题