#author("2016-08-04T21:13:04+09:00","default:wikiwriter","wikiwriter") #author("2016-11-18T23:25:21+09:00","default:wikiwriter","wikiwriter") [[Swift]] &tag(Swift/ARC); *目次 [#o4268f77] #contents *関連ページ [#f6a81277] *参考情報 [#n2b994f9] *メモリ管理の基本 [#odda9528] -ARCを使ってメモリ管理を行っているのはObjective-Cと同じ。 -すなわち循環参照が起こらないように注意必要がある。 -クロージャをプロパティとして持つ場合は注意が必要。weak selfでキャプチャする必要がある。 --[[[iOS] そのアプリ、メモリリークしてませんか? | Developers.IO:http://dev.classmethod.jp/smartphone/ios-memory-leak/]] -注意しないといけないのはあくまで循環参照になる場合。例えばViewController間で引数を引き回す場合、その引数オブジェクトは強参照で保持して問題ない(そのオブジェクトからViewControllerを参照しなければ)。 -注意しないといけないのはあくまで循環参照になる場合。例えばViewController間で引数を引き回す場合、その引数オブジェクトは強参照で保持して問題ない(そのオブジェクトからViewControllerを参照しなければ、ViewControllerが解放されれば引数の参照カウントもマイナスされていき、最終的にメモリリークはおこらないはず)。 -Outletがweakになっているのはviewだけをアンロードするとき、Outletをnilにしなくていいかららしい(UIKit徹底入門より)。 -よくあるdelegateにselfを渡すパターンの場合、delegateをweakにしたほうが無難。