0

If I miss a call to super's dealloc, is it explicitly added by the compiler or If I want to release something inherited from super class, I need an explicit call to super's dealloc in the end of my dealloc.

4

2 回答 2

1

如果您使用的是 ARC,则不能调用 super(我认为它无论如何都会产生错误),因为它会自动为您调用。如果你不使用 ARC,那么你必须调用 super。编译器不会为您执行此操作。

于 2013-07-28T09:41:32.340 回答
1

如果你使用ARC,编译器会自动添加调用,[super dealloc]如果你尝试,你会得到一个编译错误;

来自 clang ARC 参考

如果程序包含用于选择器 dealloc 的消息发送或 @selector 表达式,则该程序是格式错误的。
...
方法返回时将自动调用超类的dealloc实现。

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

于 2013-07-28T09:43:18.530 回答