読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #239】guard文 ~Xcode7から使える

Swiftを使っていて、Optional型を使っていると、
面倒だと思っていたことがある。

①if let文の中にif let文を書いたりすることがある
②if let文の外ではunwrapした定数が無効

このせいでif let文の中が結構長くなって、可読性がおちていた。

①はSwift1.2で、複数のOptional型の変数を
if let x = a, y = bのように1行で書けるようになり、改善した。

②について、Swift2.0でguard文というのが導入され、改善されるようだ。

ソースを書いてみた。
Swift2.0が使えるXcode7.0以降でないとエラーになるので注意。

・Swift1.2までの場合

import UIKit

class ViewController: UIViewController {
    let yamada = ["name": "山田", "hobby": "乗馬"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // Swift1.2まで
        if let name = yamada["name"], let hobby = yamada["hobby"]{
            print("\(name)の趣味は\(hobby)です。")
        }

        // if文の外でname,hobbyを使うとエラー
        // print("\(name)の趣味は\(hobby)です。")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}


・Swift2.0から導入されたguard文を使用した場合

import UIKit

class ViewController: UIViewController {
    let yamada = ["name": "山田", "hobby": "乗馬"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // Swift2.0 guard文を使う
        guard let name = yamada["name"], hobby = yamada["hobby"] else{
            return
        }

        // guard文の外でもname,hobbyは有効
        print("\(name)の趣味は\(hobby)です。")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}


■おわりに
この本がベストセラーになってる。
いろんなものを不要なものとしてるのが流行りなのか。

必要十分生活~少ないモノで気分爽快に生きるコツ~



【参考情報】
iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍
【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾

③中級者、上級者向け

詳解 Swift

詳解 Swift