0

我有一个要添加 SKScene 的 UIView。在我声明“skView”的步骤中它崩溃了。

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

1 回答 1

0

as操作员不是那样工作的。为了将一种类型的值处理为as另一种类型,需要满足以下两点:

  • 第二种类型需要比第一种更具体
  • 该值实际上需要属于第二种类型。

你有第一个,但没有第二个。例如,如果我给你一些东西,而我只说它是 a Car,那么你accelerate()可以随心所欲地接受它(不要忘记brake()也一样),但如果你愿意,engageClutch()你需要把它当作asa StickshiftCar。不过,我可能给了你StickshiftCar,也可能没有——如果你实际上拥有的是别的东西,你不能只说“把它当作一个变速杆”来让它成为一个。

如果你想使用一个SKView,你首先需要给自己一个。如果您的视图设置在情节提要中,请使用 IB 将视图控制器的根视图设置为SKView. 然后,在代码中,您可以访问self.view(这只是UIView属性所知道的所有内容)并安全地将其as视为SKView.

于 2014-11-28T23:39:52.800 回答