0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

クロージャによるイベント通知パターン(備忘録)

Last updated at Posted at 2021-08-02

##クロージャによるイベント通知
Swiftにおけるイベント通知パターンには3種類あり、その1つがクロージャによるイベント通知である。
クロージャを用いると、呼び出し元と同じ場所にコールバック処理を記述できるため、処理の流れを追いやすくなる。

しかし、複数のコールバック関数が必要な場合やコールバックの処理が複雑な場合はネストが深くなり可読性が下がる。

final class SomeClosure {
    
    private var num: Int = 0
    
    func plus(completion: (Int) -> (Void)) {
        num = 100
//処理の完了時の結果をクロージャに渡す
        completion(num)
    }
}

let someClosure = SomeClosure()

//処理の結果がnumに入る
someClosure.plus { (num) in
    print("Number is \(num)")
}

##どんなときに利用するべきか?
処理の完了イベントだけを受け取れればいいようなシンプルなケースの場合はクロージャを選択するべきであるが、コールバックの種類がいくつもある場合はデリゲートの利用も検討すべき

#参考
・Swift実践入門

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?