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への道は山あり壁ありだな・・・。

分厚い壁、高い山

青空の広がった本日の金沢方面、朝一番は少しだけ路面が濡れていたものの玄関を出た勢いでフルコースのお散歩、それから徒歩出勤と順調な午前中。

で、一方の飼主、眼前に立ちはだかる壁、できる限りの情報収集とトライ・アンド・エラーの繰り返しで、自力ではどうにもならない現状の確認。

紆余曲折、山あり谷ありの飼主。

さてどうしたものか・・・。

IMG_0387

IMG_0388

IMG_0389

IMG_0392

IMG_0396

IMG_0395

ボス殿ようやく止めに入ります、が・・・
ボス殿ようやく止めに入ります、が・・・