Skip to content

Latest commit

 

History

History
17 lines (12 loc) · 1.12 KB

Callback.md

File metadata and controls

17 lines (12 loc) · 1.12 KB

コールバック

完了時の処理を引数で渡しておく手法があります。
例えば、UIViewControllerの present(_:animated:completion:) など。

Delegateパターンよりも全体の処理の流れが追いやすくなると思います。
また、メソッドが1〜2つのDelegateですと、コールバックを用いた方が実装量も少なくなるでしょう。
反対に、Modelが要求するコールバックが多いと、Delegateパターンを用いて一つの型にまとめた方が管理し易い場合もあるでしょう。

課題

  • Delegateで受け取っていたAPIの結果を、コールバック形式で受け取るように変更する
  • ViewControllerを閉じた時にdeinitが呼ばれることを確認する

ぜひ関数型引数はOptional型、非Optional型の両方を実装し、その違いを確認してみましょう。

附録

関連ワード・動画索引(熊谷さんのやさしい Swift 勉強会)