LoginSignup
8
8

More than 5 years have passed since last update.

循環参照を体験する雑なdemoコード作った件

Posted at

Swift時代はARC前提だしSwiftから始めた人に循環参照でメモリリークする件を伝えるのはどこから話せばいいか難しい。なので動くデモコードとして循環参照するパターンとしないパターンを作ればいいかなと思ったのでGitHubにpushしています。

動作説明

  • 画面は一覧と詳細画面に分かれている
  • 詳細画面でTimer用のインスタンスを作りそいつがクロージャ利用
    • 詳細画面のViewControllerをクロージャに渡す
    • 詳細画面から一覧画面に戻った時に循環参照していなければdeinitされる
  • deinitが実行されてるかどうかはNSLog使ってるのでXcodeのコンソール見て確認

一覧画面で循環参照すしないコードとするコードが選べる

スクリーンショット 2015-09-02 17.17.20.png

詳細画面はこんな感じ

スクリーンショット 2015-09-02 17.21.39.png

備考

Timerを使っているのはクロージャを保持して動作を実行してくれるのが分かりやすいため。

参考

Swiftのクロージャにおける循環参照問題でunownedとweakの使い分けがわからない
http://qiita.com/susieyy/items/39efd4d34cf4c1f9d3ef

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8