読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 745 - Sprite Kit チュートリアル改訂中 3

めちゃめちゃ悩んでいます(^^;)

yataiblue.hatenablog.com

Sprite Kitチュートリアルの復習をしているのですが、GameViewControllerクラスのviewDidLoad()メソッド内にあるコードで疑問が生まれました...

let skView = view as! SKView

「view」プロパティをSKViewにキャストしているのですが、Xcode 8 でこの「view」を「Opt + クリック*1」すると、「var view: UIView! { get set }」という説明が出てきます。

あれ?

この「view」プロパティは UIView なんですか?

テンプレートで「Game」を選択すれば、GameViewControllerにベースビューが作られています。

f:id:yataiblue:20160730124739j:plain

「View」を選択してアイデェンティティ・インスペクタを見ると、カスタムクラスのClass名は「SKView」になっています。そうですよね。ベースビューはSKViewでないと、viewDidLoad()メソッド内のコードが動かないでしょう。

let skView = view as! SKView

ベースビューからリファレンスコピーのインスタンスskViewにして実装をしているんです。

どうしてUIViewという説明になっているのだろう? 不思議だ。

今日もこれだけ。

*1:リファレンスがポップアップして表示されます。