2014-11-28 3 views
0

SKScene을 추가하려는 UIView가 있습니다. 단계에서 나는 그것을 "skView"선언했다.스프라이트 키트보기 설정 충돌 (신속)

var skView=view as SKView; 
var skScene=gameScene(); 
skView.presentScene(skScene) 
+0

'보기'가 보유하고있는 것을 확인하십시오. 아마도 'SKView'가 아니므로 형 변환이 실패합니다. – Eduardo

+0

"보기"유형이 "UIView"입니다. –

답변

0

as 연산자는 그렇게 작동하지 않습니다. 한 종류의 as 또 다른 유형의 값을 치료하기 위해, 두 가지 진실해야합니다

  • 두 번째 유형은 실제로의 수 값이 에 필요한 첫 번째
  • 보다 더 구체적이어야합니다 두 번째 유형.

두 번째가 아니라 첫 번째가 있습니다. 예를 들어 내가 제공하는 내용이 Car 인 경우 accelerate()을 보내 주시면됩니다 (brake()도 잊지 마세요). engageClutch()을 원할 경우 치료할 필요가 있습니다. 그것 as a StickshiftCar입니다. 나는 당신에게 StickshiftCar을 주었을 수도 안했을 수도 있습니다. 실제로 가지고있는 것이 다른 것이면, "이것을 막대기처럼 취급하십시오"라고 말할 수는 없습니다.

SKView을 사용하려면 먼저 자신을 가져와야합니다. 스토리 보드에보기가 설정된 경우 IB를 사용하여보기 컨트롤러의 루트보기를 SKView으로 만듭니다. 그런 다음 코드에서 self.view에 액세스 할 수 있습니다 (이 속성은 모두 해당 속성에 대해 UIView 임). asSKView으로 안전하게 처리 할 수 ​​있습니다.