【Swift】Optional型 使用方法まとめ
Optional型の使用方法がいまいちわかっていなかったので整理しました。
(環境: xcode 6.2, Swift 1.1)
nil の代入可否
- 非Optional型
var vN1 : UIView vN1 = nil // エラー
- Optional型
var vO1 : UIView? vO1 = nil // OK
- Implicitly Unwrapped Optional型
var vI1 : UIView! vI1 = nil // OK
変数の参照
- 非Optional型
var vN2 : UIView vN2 = UIView() vN2.frame // OK (非Optional型はnilじゃないことが保証されてる)
- Optional型
var vO2 : UIView? // nilじゃない場合 vO2 = UIView() vO2?.frame // OK (Optional型を返す) vO2!.frame // OK (非Optional型を返す(アンラップされて)) // nilの場合 vO2 = nil vO2?.frame // OK vO2!.frame // エラー
- Implicitly Unwrapped Optional型
var vI2 : UIView! // nilじゃない場合 vI2 = UIView() vI2.frame // OK (非Optional型を返す) vI2!.frame // OK (非Optional型を返す。自動アンラップすると宣言してるが、手動でアンラップ...) vI2?.frame // OK (Optional型を返す) // nilの場合 vI2 = nil vI2.frame // エラー vI2!.frame // エラー vI2?.frame // OK
以上です。