2015-11-19 132 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

相關問題