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と違って、同じスコープに複数書くこともできるみたいですね。