思い立ったが吉日!

iOSが好きです。

deferの使いドコロ

deferの使いドコロ

swift2.0から追加された、deferってあまり使ってなかったんですがjavaとかのtry catch finallyのfinally的なやつだと思えば結構使えるやつなんですね。

// インジケータをグルグルさせる
indicator?.startAnimating()
// 二重タップ防止の為通信終わるまでボタン押せなくしておく
通信ボタン.userInteractionEnabled = false

なんか通信とか { [weak self] (response) in
               // スコープ抜けるときに必ずやる処理
                defer {
                    // インジケータの止め忘れとか
                    self?.indicator?.stopAnimating()
       // ボタン効かなくなったままにならないように
                    通信ボタン.userInteractionEnabled = true
                }
                
                
                if response.isOk {
                    // レスポンスの処理とか
                }
            }

finallyと違って、同じスコープに複数書くこともできるみたいですね。