IOS對dealloc的處理

對於dealloc函數有兩種作法,函數

一個是直接將實例變量release掉:spa

-(void)dealloc指針

調試

  [subject release];orm

[super dealloc];對象

內存

另外一種是將變量relsease 掉再將它指向nil;it

-(void)dealloc變量

object

[subject release]

  subject=nil;

[super dealloc];

 

 

兩種方法結果是一致的,可是有些許的差異。

變量在被release掉後,系統將該內存標識爲可用,nil只是起到重置指針的做用。

可是在object-c中給nil對象發送消息是,什麼也不會發生,這樣在調試的時候,很難找到出錯的地方,因此

在調試階段最後用第一種,爲了上線的時候用第二種,

能夠經過宏定義

  1. #if DEBUG  

  2. #define MCRelease(x) [x release]  

  3. #else  

  4. #define MCRelease(x) [x release], x = nil  

  5. #endif

相關文章
相關標籤/搜索