Outletのweak参照の理由
UIViewControllerに繋いだ時のアウトレットが何で自動で弱参照(weak)になるのか、今日UIKitの書籍読んでいて初めて知りました。
以下、である調。
UIViewControllerが管理しているViewのことをコンテンツビューといい、アウトレットで繋がっているものは元々コンテンツビューと強参照で繋がっている。コンテンツビューは画面の表示と対応していて、非表示になった時に開放したりする。コンテンツビューとだけ強参照で繋がっていると、コンテンツビューのメモリ開放のタイミングでアウトレットも一緒に開放される。UIViewControllerとも強参照で繋がっていると、Viewを開放しただけではアウトレットは消えず。メモリ開放を明示的に行わなければいけない。(サブビューで画面上に出したものを消したとき、そのサブビューに紐づいたアウトレットだけメモリが開放されず残っちゃうのでUIViewController側で消す処理を書かなければいけない)
〆
というようなことを以下の書籍を読んで勉強中です。