Outletのweak参照の理由

UIViewControllerに繋いだ時のアウトレットが何で自動で弱参照(weak)になるのか、今日UIKitの書籍読んでいて初めて知りました。

 

以下、である調。

UIViewControllerが管理しているViewのことをコンテンツビューといい、アウトレットで繋がっているものは元々コンテンツビューと強参照で繋がっている。コンテンツビューは画面の表示と対応していて、非表示になった時に開放したりする。コンテンツビューとだけ強参照で繋がっていると、コンテンツビューのメモリ開放のタイミングでアウトレットも一緒に開放される。UIViewControllerとも強参照で繋がっていると、Viewを開放しただけではアウトレットは消えず。メモリ開放を明示的に行わなければいけない。(サブビューで画面上に出したものを消したとき、そのサブビューに紐づいたアウトレットだけメモリが開放されず残っちゃうのでUIViewController側で消す処理を書かなければいけない)

 

 

 というようなことを以下の書籍を読んで勉強中です。

 

 

UIKit徹底解説 iOSユーザーインターフェイスの開発

UIKit徹底解説 iOSユーザーインターフェイスの開発