错过调用super的dealloc会导致内存泄漏吗?

时间:2013-07-28 09:39:06

标签: objective-c memory-management

如果我错过了对super的dealloc的调用,它是由编译器显式添加还是如果我想释放从超类继承的东西,我需要在dealloc的末尾显式调用super的dealloc。

2 个答案:

答案 0 :(得分:1)

如果您正在使用ARC,则不得调用super(我认为它会产生错误),因为它会自动为您调用。如果你不使用ARC,那么你必须打电话给super。编译器不会为你做这件事。

答案 1 :(得分:1)

如果您正在使用ARC,编译器会自动添加对[super dealloc]的调用,如果您尝试,则会出现编译错误;

From the clang ARC reference;

  

如果程序包含选择器dealloc的消息send或@selector表达式,则程序格式不正确   ...
  当方法返回时,将自动调用超类的dealloc实现。

如果您不使用ARC,则需要自行添加。