ARC によるクラスへの影響 - Automatic Reference Counting
SPECIAL
ARC によるクラスへの影響
ARC (Automatic Reference Counting) を有効にすると、後述するように、変数のメモリー管理が自動化されるのでそれもクラス全体に影響を与えてくるかと思いますが、それ以外の点についても ARC が影響する箇所があります。
従来のプログラミングでは、クラスを継承して dealloc メソッドをオーバーライドした場合には、必ず、明示的に [super dealloc] を実行して、基底クラスの dealloc メソッドを呼び出してあげる必要がありました。
このようなデストラクタは、原則的には必ず派生元のものを呼び出さなくてはいけないため、ARC では、この [super dealloc] を自動的に実行してくれるようになりました。
// ARC では、派生先の dealloc から、基底クラスの dealloc を呼び出さなくても良くなりました。
- (void)dealloc
{
value1 = nil;
value2 = nil;
}
慣れないと違和感がありますけど、このように [super dealloc] を呼び出す必要がなくなります。
必ず呼び出すものなので、呼び忘れがなくなることは、大きなメリットのように思います。