Optionalやnilのこと

そろそろApple Watchの姿もうっすらと見えはじめたか?本日、開発キット「WatchKit」の提供がはじまった。

そんなこんなで、飼主、只今OS Yosemite環境下、Xcode6.1でSwiftのお勉強中。

で、いきなり躓いているのがどうやら「nil」の扱い。Objective-Cではほとんど意識しなかったのだが(というより、飼主の気がそこまで回らない)、Swiftではnilの扱いが厳密になっているようだ。

ここまでの理解だと、nil=「カラ」はダメのようで、変数が空の可能性を「!」や「?」でその取り扱いを明示しなければいけないようなのだね・・・

これを「Optional」などと云うようなのだが、概念的にその雰囲気を理解出来てもコード上にどう記述していけば良いのか、すっきりと理解出来ないのがいつもの飼主。

例えばパラパラアニメを作りたくてとりあえず画像要素の配列をつくってみる。

var imgArray = [

  UIImage(named: “01.png”),

  UIImage(named: “02.png”),

  UIImage(named: “03.png”),

  UIImage(named: “04.png”)

]

これじゃダメで「‘UIImage?’ is not identical to ‘AnyObject’」なんて云われてしまう。

で、配列の中身は「UIImage」クラスで、決して空(=nil)じゃないですよッて「!」ッて云ってやらなくてはいけない。

[UIImage!]ッてね・・・。

var imgArray:[UIImage!] = [

  UIImage(named: “01.png”),

  UIImage(named: “02.png”),

  UIImage(named: “03.png”),

  UIImage(named: “04.png”)

]

Swiftへの道は山あり壁ありだな・・・。