iOS 6からviewWillUnloadとviewDidUnloadが呼ばれなくなったようなので、実際どのように処理をしているのかを調べてみました。
詳細は「View Controller Programming Guide for iOS」の「Resource Management in View Controllers」を参照してください。
iOS 6からviewWillUnloadとviewDidUnloadが呼ばれなくなったようなので、実際どのように処理をしているのかを調べてみました。
詳細は「View Controller Programming Guide for iOS」の「Resource Management in View Controllers」を参照してください。
ビューコントローラにおけるビューの管理にはロードサイクルとアンロードサイクルという2つのサイクルがあります。ロードサイクルではビューを利用可能な状態にし、アンロードサイクルは利用できない状態にします。なお、アンロードサイクルはアプリケーションがメモリ不足のときに発生します (コントローラの解放とは関係ありません)。
iPhoneはメモリを潤沢に持っていないため、使用メモリ量に関係なくアプリケーションのメモリ警告が発生することがあります。このとき、アプリケーションは前述のアンロードサイクルを含んだ処理を行ってメモリを解放しようとします。本記事ではこのアンロードサイクルの処理の流れについて調べてみます。
そこで、本記事ではまずコントローラのビュー管理についてまとめ、続いて、メモリ警告発生時の挙動をシミュレーションを通して確認してみます。なお、ビュー管理サイクルについては「View Controller Programming Guide for iOS」の「Understanding the View Management Cycle」の項を、メモリ警告シミュレーションについては「Memory Usage Performance Guidelines」の「Responding to Low-Memory Warnings in iOS」の項を参照してください。