##クロージャによるイベント通知
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実践入門