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

相关文章
相关标签/搜索