weak 修飾子について
プロパティにweak修飾子をつける理由
- 循環参照(retain cycle)を避けるため
- 循環参照とは?
- メモリリークの一種でオブジェクト間の相互参照によって発生。
- メモリリーク(Memory Leak)とは?
- プログラムやアプリにおけるメモリの不適切な使用状態。
- 不要なメモリの確保や解放漏れにより、メモリ使用量が増加し続ける状態。
- 2つ以上のオブジェクトがお互いに強参照(strong reference)を持ち、相互に解放されなくなる状態を指す。
- 強参照とは?
- オブジェクトが他のオブジェクトを所有することを意味する。
- 参照カウントが増加し、オブジェクトが解放されない限り、メモリ上に保持され続ける。
- 強参照がデフォルト。
- 循環参照が発生すると?
- オブジェクトが互いに解放されなくなり、メモリの解放が行われない。
- アプリのメモリ使用量が増加し続け、最終的にメモリリークが発生。
- メモリリークが継続すると?
- アプリのパフォーマンス低下やクラッシュの原因となる。
- 循環参照は相互に強参照を持つ場合に発生する。
- 弱参照(weak reference)とは?
- 参照カウントを増加させず、参照先オブジェクトが解放されると、自動的にnilになり、循環参照を解消するのに役立つ。
0 件のコメント:
コメントを投稿