まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

【swift】変数のオプショナル型

swiftの変数は基本的にnilを許容しません。
しかしながら、textFieldやAPI経由で外部から値を取得する場合など、構造上、値がnilになりうる場合があります。

そこで利用されるのがオプショナル型の変数です。
変数をラップする(オプショナル型を使う)をnilを扱うことができ、実際にその変数を使用するためにはアンラップする必要があります。

絶対に値がnilにならない場合

変数宣言時に!を付ける黙示的アンラップ型を使用
自動的にアンラップしてくれるためnilが入ると即落ちる

var aaa:Int! = 10

通常の場合

変数の宣言時に?をつける

var str1:String?
str1 = "zzzz"

アンラップの方法

str1がnilの場合??のあとの項目がresultStrに代入される

var str1:String?
str1 = "zzzz"
let resultStr = (str1 ?? "nilですよ!")
print("result=",resultStr)

str1がnilでなければstr1がstrに代入される。 nilの場合は代入は行われずelse以下が実行される。

if let str = str1 {
    print(str)
}else{
    print("nil!!!!!")
}