#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にしたほうが無難。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS