[Swift]Swift2が出たのでSwift1のコードをコンバートしました

過去(swift1時代?)、作ったのをswift2でビルドしてみました。

早速エラーが出たので、調査。
こんなエラー

Cannot convert value of type '[AnyObject]' to expected argument type '[UIViewController]?'

エラーが出た変数の後ろに、

as! [UIViewController]

を追加したら直りました。

Optionalの考え方が厳密になったからなのかな。

以下、推測

UIViewController?Optional<UIViewController>のシンタックスシュガーです。
Optional<T>enumです。
AnyObjectはクラスを表します。
enumはクラスではありません。
なので、UIViewController?AnyObjectではない。
ちゃんとチェックされるように強化されたのだと思われます。

参考

コメント

タイトルとURLをコピーしました