2009-07-31 11 views
1

自動リリースされたオブジェクトをリリースするとどうなりますか?私が解放したいと思うautoreleased UIButtonそしてUIButtonを作成する唯一の方法は、convinienceメソッドbuttonWithType:を使用することです。通常のオブジェクトのようにメモリから解放されますか?あるいは、私はオートレリースプールにそれを世話させるべきですか?もし私ができるなら、私はそれを最初に自動リリースしていないでしょう。iPhone開発 - 自動リリースオブジェクトのリリース

ありがとうございます!

答えて

1

自動解放プールで処理するようにしてください。親ビューにボタンを追加すると、そのビューはそれを保持し、自動解放されたハンドルは自動解放プールによって処理されます。

これを考えるのが最も簡単な方法は所有権です。利便性の高い方法で参照を所有しているわけではありませんので、それを保持しない限り解放する必要はありません。

0

自分が所有するオブジェクトのみをリリースする必要があります。 + buttonWithType:所有オブジェクトを返さないため、解放してはいけません。

Cocoa Object Ownership Rulesを確認してください。

なぜここで自動リリースされたオブジェクトを避けようとしていますか?おそらく、ボタンを使用してそれをビュー階層に挿入しているため、ボタンを作成していると思われます。そのため、ボタンを含む自動解放プールの排水を加速する本当の理由はありません。