Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > deferってどう使う?金魚のフン制御構文

金魚のフン制御構文「defer」

先日サンプルコードを読んでいたらdeferという新しいワードが。Swift2から新しくでてきたGo言語でも 利用されているdeferという処理があるようですので解説です。これは処理の最後に何かを実施するJavaやC#でのtry..catch..finallyの finally部分と似た処理になります。つまるところエラーが発生しようが発生しまいが「処理のあとで何かしたい」時に利用する金魚のフンのような処理です。

サンプル画像

参考:Swift 2のdefer文
参考:The defer keyword in Swift 2: try/finally done right
参考:新しい制御構文の追加
参考:Swiftでdeinitまで処理をdeferする

やってみた

百聞は一見にしかずですのでやってみましょう。

関数の中で実行する


class ViewController: UIViewController {
    
    override func viewDidAppear(animated: Bool) {
        
        print("ステップ 1")
        testDefer()
        print("ステップ 4")    }
    
    
    func testDefer() {
        print("ステップ 2")
        defer { print("金魚のフンです") }
        print("ステップ 3")
    }

}

上の処理を実行すると、、、、以下のような結果に


ステップ 1
ステップ 2
ステップ 3
金魚のフンです
ステップ 4

上のソースコードならステップ2の後に実行されそうですが関数の最後まで処理してから 金魚の糞deferを実行しているのがわかります。

do の中でつかってみる


        print("ステップ 1")
        
        do {
            defer { print("金魚のフン") }
            print("ステップ 2")
            print("ステップ 3")
        }
        
        print("ステップ 4")
        

この場合はdoで囲った箇所の最後に実行。柔軟性がありますね!


ステップ 1
ステップ 2
ステップ 3
金魚のフンです
ステップ 4

for の中でつかってみる


        for i in 1...10 {
            print ("IN \(i)")
            defer { print ("金魚のフン \(i)") }
            print ("OUT \(i)")
        }
        

これなんかだと、、、、以下の様になります。


IN 1
OUT 1
金魚のフン 1
IN 2
OUT 2
金魚のフン 2
IN 3
OUT 3
金魚のフン 3
...
金魚のフン 9
IN 10
OUT 10
金魚のフン 10


いろいろ柔軟にも使えるようですので試してみてください!

まとめ

使えそうな制御構文です!Playgroundではdeferが確認できませんでしたので注意です。

↓こんな記事もありますよ!

Facebook SDKを試してみる(ログイン)

さて、前回記事でSDKをダウンロードした状態ですので、プロジェクトに追加してみましょう。 SDKがインストールされたDirectoryへ移動します。必要なSDKはFBSDKCoreKit.fraweworkなので、何個かその他frameworkはありますが、 それだけをプロジェクトにドラッグしてみましょう。

外部ブラウザでURLを開く

アプリから外部ブラウザ(Safari)でURLを開く方法を記載します。内部的に利用する場合はWebViewを利用します。

AppleWatchのアプリ登録が開始されました、開発部分を少し翻訳

ItunesconnectにもAppleWatchのアイコン やスクリーンショットが登録できる画面が追加されています。あと24日、登録予定している人は審査を考えても後10日程度ではないでしょうか。 スタートダッシュに追いつくには今が頑張りどころなのかもしれません!
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!