У меня есть UIView, что я хочу добавить SKScene. На этом этапе я объявляю «skView», что он сбой.Сценарий установки Sprite Kit (Swift)
var skView=view as SKView;
var skScene=gameScene();
skView.presentScene(skScene)
У меня есть UIView, что я хочу добавить SKScene. На этом этапе я объявляю «skView», что он сбой.Сценарий установки Sprite Kit (Swift)
var skView=view as SKView;
var skScene=gameScene();
skView.presentScene(skScene)
Оператор as
не работает таким образом. Для того, чтобы рассматривать значение одного типа as
другого типа, две вещей, которые нужны, чтобы быть правдой:
У вас есть первая, но не вторая. Например, если я дам вам что-то, и все, что я говорю, это то, что это Car
, вы можете accelerate()
все, что хотите (не забудьте также brake()
), но если вы хотите engageClutch()
, вам нужно будет лечить его as
a StickshiftCar
. Возможно, я мог или не мог дать вам StickshiftCar
, хотя если у вас есть что-то еще, вы не можете просто сказать «относиться к этому как клеймо», чтобы сделать его одним.
Если вы хотите использовать SKView
, сначала вам нужно получить его. Если ваше представление настроено в раскадровке, используйте IB, чтобы сделать корневой вид контроллера представления SKView
. Затем в коде вы можете получить доступ к self.view
(это всего лишь UIView
для всего, что знает об этом свойстве) и безопасно обрабатывать его as
a SKView
.
Проверьте, что такое 'view'. Вероятно, это не «SKView», и поэтому приведение типа приводит к сбою. – Eduardo
"Вид" имеет тип "UIView" –