HOME > 'UIWindow?' does not have a member named 'Layer'の対応の対応の対応
以下不備にハマったのでメモ。サンプルソースをコピーしているとよく発生するのでメモ。Appleの仕様変更で元来の型からオプショナル型に変わった場合等に必要と思われます。 ほぼ同じ投稿をerror002.phpで自分でアップしているので全く成長していないようでした。orz。覚えずらい、、、、
//この行でUIWindow?にはLayerが無いとのエラー。ちなみにkeyWindowがUIWindow。
let layer = UIApplication.sharedApplication().keyWindow.layer
以下のようにラップしてあげると解決します。UIWindowはSDK最新版ではオプショナル型なのに、sharedApplication()のkeyWindowは以前のまま通常のクラス表記だった場合に発生しているようです。 なので、こういったエラーがでたらまず「?』をつけて様子をみましょう、、、
let layer = UIApplication.sharedApplication().keyWindow?.layer
いつまでこれに悩まされるのか、、、