-2

重複の可能性:
deallocメソッドはいつ呼び出されますか?

deallocメソッドはいつ呼び出されますか?自動的に呼び出されますか?

私が書いたら

UIButton *Btn = [UIButton alloc];
[Btn release]; 

次にdealloc、参照カウントがゼロであるために呼び出されますか?

そうでない場合は、いつ、どのように機能しますか?何superですか?

それが呼ばれるとき、私が内部deallocでリリースするすべてがリリースされるかどうか?たとえば、deallocが呼び出され、とを実現btn1したとしてもbtn2btn2の参照カウントは2のままです。がdealloc呼び出されると、btn2も解放され、その参照は1とカウントされますか、それともゼロになりますか?

4

1 に答える 1

2
  • deallocこれ以上所有者がいないオブジェクト(つまり、それを保持しているすべてのオブジェクト、released it)に自動的に送信されます
  • [super dealloc]スーパークラス(現在のオブジェクトの親クラス)のdeallocメソッドを呼び出します。Cocoaフレームワークのほとんどすべてのクラスは、少なくともからサブクラス化されてNSObjectいるため、この行は適切なメモリ解放に必要です。
于 2012-05-17T18:48:54.180 に答える