dealloc を上書きして、Objective-C クラスにクリーンアップ コードを作成しようとしています。
-(void)dealloc {
//cleanup code
[super dealloc];
}
[super dealloc]
ARCが有効な場合、コンパイラによって許可されていないため、これを行うことはできません。私が使用できる代替手段はありますか?
dealloc を上書きして、Objective-C クラスにクリーンアップ コードを作成しようとしています。
-(void)dealloc {
//cleanup code
[super dealloc];
}
[super dealloc]
ARCが有効な場合、コンパイラによって許可されていないため、これを行うことはできません。私が使用できる代替手段はありますか?
ARCリリースノートへの移行から(強調鉱山):
インスタンス変数の解放以外のリソースを管理する必要がある場合は、dealloc メソッドを実装できます。インスタンス変数を解放する必要はありません (実際には解放できません) が、ARC を使用してコンパイルされていないシステム クラスやその他のコードで [systemClassInstance setDelegate:nil] を呼び出す必要がある場合があります。
ARC のカスタム dealloc メソッドでは、[super dealloc] を呼び出す必要はありません (実際にはコンパイラ エラーが発生します)。スーパーへの連鎖は、コンパイラによって自動化され、強制されます。
dealloc
したがって、ARC を使用する場合でも同じ種類のクリーンアップを行うことができますsuper
。
ARC がアクティブなときは、単純に を呼び出さないでください[super dealloc]
。ARC がこれを行います。または、呼び出すことができ、基本クラス内から呼び出されるprepareForDealloc
メソッドを持つこともできます。super
dealloc