Objective-C之为什么不要在 dealloc 中使用 self ?

因为如果子类重写了父类实例变量的set方法,子类的对象要执行dealloc的时候,会把它(子类)的实例变量都置为nil,从内存释放,然后会自动调用父类的dealloc([super dealloc]),如果父类的dealloc里面有使用self.的话,这个时候会去调用子类的set方法,如果在子类的这个重写的set方法里又去使用它(子类)的实例变量话可能就会有问题,因为这个时候子类的所有实例变量都是空了。

你可能感兴趣的:(Objective-C之为什么不要在 dealloc 中使用 self ?)