2014-11-28 2 views
0

У меня есть UIView, что я хочу добавить SKScene. На этом этапе я объявляю «skView», что он сбой.Сценарий установки Sprite Kit (Swift)

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

Проверьте, что такое 'view'. Вероятно, это не «SKView», и поэтому приведение типа приводит к сбою. – Eduardo

+0

"Вид" имеет тип "UIView" –

ответ

0

Оператор as не работает таким образом. Для того, чтобы рассматривать значение одного типа as другого типа, две вещей, которые нужны, чтобы быть правдой:

  • второго типа должна быть более точными, чем первый
  • значение должно фактически быть из второй тип.

У вас есть первая, но не вторая. Например, если я дам вам что-то, и все, что я говорю, это то, что это Car, вы можете accelerate() все, что хотите (не забудьте также brake()), но если вы хотите engageClutch(), вам нужно будет лечить его as a StickshiftCar. Возможно, я мог или не мог дать вам StickshiftCar, хотя если у вас есть что-то еще, вы не можете просто сказать «относиться к этому как клеймо», чтобы сделать его одним.

Если вы хотите использовать SKView, сначала вам нужно получить его. Если ваше представление настроено в раскадровке, используйте IB, чтобы сделать корневой вид контроллера представления SKView. Затем в коде вы можете получить доступ к self.view (это всего лишь UIView для всего, что знает об этом свойстве) и безопасно обрабатывать его as a SKView.

Смежные вопросы