ARC が有効になっている場合、次のようなクリーンアップ コードを呼び出す正しい場所はどこですか?
if ([EAGLContext currentContext] == mContext) [EAGLContext setCurrentContext:nil];ARC では、メモリは LLVM によって管理されているため、何の注意も払わずに dealloc メソッドをオーバーライドできますか?
2 に答える
1
でこのコードを呼び出すこともできますが
dealloc、コードの構造によっては、より適切なポイントがある場合があります。多分viewDidUnloaddealloc次の注意事項でオーバーライドできます。- 呼び出すことはできません
[super dealloc]。 - を呼び出すことはできません
release。ここでは nil 割り当てのみを行い、リスナーを削除するなどしてください。
- 呼び出すことはできません
于 2012-10-11T16:52:37.747 に答える
0
最初の質問についてはわかりませんが、2 番目の質問については、ARC は と の明示的なメッセージ送信を禁止していdeallocますrelease。を呼び出そうとすると[super dealloc]、または[attribute release]コード内のどこか (deallocメソッドなど) でエラーが発生します。
于 2012-10-11T16:57:38.683 に答える