1
  1. ARC が有効になっている場合、次のようなクリーンアップ コードを呼び出す正しい場所はどこですか?

    if ([EAGLContext currentContext] == mContext)    
        [EAGLContext setCurrentContext:nil];
    
  2. ARC では、メモリは LLVM によって管理されているため、何の注意も払わずに dealloc メソッドをオーバーライドできますか?

4

2 に答える 2

1
  1. でこのコードを呼び出すこともできますがdealloc、コードの構造によっては、より適切なポイントがある場合があります。多分viewDidUnload

  2. dealloc次の注意事項でオーバーライドできます。

    • 呼び出すことはできません[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 に答える