mzgkworks

iOSを中心にプログラミング関係について書く

【Swift】Modalで表示するViewControllerにあるUIImageView

UIImageViewを保有し、imageを表示するようなViewControllerをModalで表示/非表示させる時の話し。

現象

dismissViewControllerAnimated:completion:で閉じても、なぜかimageがメモリに残っているようにみえる(解放のタイミングが遅いだけ?)。
present / dismissを繰り返すとそのうちに、memory warningを受信する。
delegateProtocolで呼び出し元でdismissした場合、自身でdismissした場合に限らず。

環境

  • iOS9.1
  • Xcode 7.2
  • Swift 2.1.1

対応

dismissする際に、以下を行う。

// imageViewにnilを突っ込む
imageView.image = nil
imageView = nil