(アプリのライフ サイクル全体で) メソッド内に (セレクターを使用して) いくつかの UIButton を作成し、それらすべてを NSMutableArray に貼り付けます。作成されたボタンはプロパティではありませんが、配列はプロパティです。
- 配列からボタンを削除すると、ボタンは自動的にメモリから解放されますか?
- 上記の答えが「いいえ」の場合、メモリから解放するにはどうすればよいですか?
(アプリのライフ サイクル全体で) メソッド内に (セレクターを使用して) いくつかの UIButton を作成し、それらすべてを NSMutableArray に貼り付けます。作成されたボタンはプロパティではありませんが、配列はプロパティです。
ボタンは、誰も保持していないため、最終的にはメモリから解放されます。その保持カウントは関係なくデクリメントされますが、他の誰もそれを保持していない場合にのみ、メモリから解放されます。
ただし、これはやや紛らわしいメカニズムです。UIButtons はビューであり、おそらくそれらを保持するビュー階層の一部であることに注意してください。それらも表示されている場合、解放するにはスーパービューから削除する必要があります。
a NSArray
(および a NSMutableArray
) に入れたものはすべて配列によって保持され、配列から削除されたとき、または配列自体が解放されたときに解放されます。ボタンやその他のオブジェクトにも当てはまります。