Swift – メモリ管理

ARC

オブジェクトは、参照カウンタを持っている。メモリ確保すると、参照カウンタが+1される。メモリ解放すると、参照カウンタが−1される。参照カウンタが0になると解放される。

ガベージコレクションではない。

ただし、参照カウンタが0になったから、すぐに解放されると困る場合がある。オブジェクト同士が参照している場合、片方が勝手に解放されてしまうと困ってしまう。そこで、強参照と弱参照の仕組みが導入されている。

非所有参照

相互依存が必要。

循環参照

参照するオブジェクト同士がともに、強参照の場合、どちらも相手のオブジェクト解放待ち合わせとなりメモリが解放されない現象。

コメント

タイトルとURLをコピーしました