关于[super dealloc]

      销毁一个对象时,需要重写系统的dealloc方法来释放当前类所拥有的对象,在dealloc方法中需要先释放当前类中所有的对象,然后再调用[super dealloc]释放父类中所拥有的对象。如先调用[super dealloc]将释放掉父类中所拥有的对象,当前类中所拥有的对象将得不得到释放,这样就会造成内存泄露。      

------错误的写法--------

- (void)dealloc

{

    [super dealloc];

    [XX release];

    ......

}

-------正确的写法--------

- (void)dealloc

{

    [XX release];

    [super dealloc];

    ......

}

 

      所创建的都是继承自根类的,有时会根据需要继承一个父类,这样父类中的实例变量也会继承过来,这部分实例变量可能会在该类中使用,它们不会自动释放内存,需要调用父类的dealloc方法来释放其拥有的对象,然而在此之前,你需要先将当前类中拥有对象所占用的内存释放掉,否则会造成泄漏。

 

posted @ 2014-03-11 21:17  Joel Zeng  阅读(524)  评论(0编辑  收藏  举报