我想知道爲什麼在它的dealloc函數中,一個對象的剩餘量等於1。Xcode retaincount = 1裏面的dealloc
-(void) dealloc
{
NSlog(@"retain count = %i ", [self retaincount]);
[super dealloc];
}
保留計數= 1所以該對象如何調用其dealloc函數,儘管其保留計數等於1。正如我所知,當保留計數等於零時,該對象調用該函數。
我想知道爲什麼在它的dealloc函數中,一個對象的剩餘量等於1。Xcode retaincount = 1裏面的dealloc
-(void) dealloc
{
NSlog(@"retain count = %i ", [self retaincount]);
[super dealloc];
}
保留計數= 1所以該對象如何調用其dealloc函數,儘管其保留計數等於1。正如我所知,當保留計數等於零時,該對象調用該函數。
因爲對象的保留計數不能爲零。
將它減少到零是浪費週期,因爲無論如何該對象都會被釋放。 retainCount可以從未返回0
和:
謝謝。但我怎麼能調試一個對象的存在?
幾種方法;
謝謝。但我怎麼能調試一個對象的存在? – SamehDos
+1'retaincount is useless'XD –
在調用[super dealloc];
之前,您可以考慮在dealloc
方法中該對象仍然活着。這使您可以調用self
上的消息在dealloc中進行一些清理。這就是爲什麼[super dealloc];
應該總是最後被調用。 This post詳細說明了爲什麼你不應該在dealloc中(或者在任何地方)保留數量。
是,這意味着對象仍然活着????? – SamehDos
從來沒有指望retainCount http://stackoverflow.com/questions/4636146/when-to-use-retaincount – vikingosegundo
我同意,不要使用保留計數作爲您發佈的所有其他答案。但是如果我調用[super dealloc],如果你先調用'[super dealloc]' –