关于[super dealloc]
销毁一个对象时,需要重写系统的dealloc方法来释放当前类所拥有的对象,在dealloc方法中需要先释放当前类中所有的对象,然后再调用[super dealloc]释放父类中所拥有的对象。如先调用[super dealloc]将释放掉父类中所拥有的对象,当前类中所拥有的对象将得不得到释放,这样就会造成内存泄露。
------错误的写法--------
- (void)dealloc
{
[super dealloc];
[XX release];
......
}
-------正确的写法--------
- (void)dealloc
{
[XX release];
[super dealloc];
......
}
所创建的都是继承自根类的,有时会根据需要继承一个父类,这样父类中的实例变量也会继承过来,这部分实例变量可能会在该类中使用,它们不会自动释放内存,需要调用父类的dealloc方法来释放其拥有的对象,然而在此之前,你需要先将当前类中拥有对象所占用的内存释放掉,否则会造成泄漏。