无法将'UIView'(0x112484eb0)类型的值转换为'SKView'(0x111646718)

时间:2015-06-11 22:00:22

标签: ios swift sprite-kit xcode7 xcode6.3.2

无法将'UIView'(0x112484eb0)类型的值转换为'SKView'(0x111646718)。我继续得到这个错误。任何人都可以帮助我,因为默认情况下代码行是存在的。我使用xcode 7 beta将SK游戏转换为最新的swift语法。编译器遗漏了很多东西,这就是我回到xcode 6的原因。我没有红色错误;但是,游戏崩溃并说线程1:信号SIGARBT。关于swift 2和swift 1的最新版本之间的变化的任何提示可能会导致转换为最新的swift语法时出现问题。也许是转换过的东西,我应该在xcode 6.3.2中改变。一旦此崩溃问题得到解决,我将删除测试版。代码中可能存在错误,因为当我将代码复制到一个全新的xcode项目时,我遇到了同样的错误。 提前谢谢!

let skView = self.view as! SKView

4 个答案:

答案 0 :(得分:52)

转到故事板,选择包含SpriteKit游戏的UIViewController,然后从左侧菜单中选择视图:

enter image description here

现在转到Identity Inspector,确保Class为UIView而不是UIViewController

enter image description here

您现在应该能够从// Configure the view. SKView * skView = (SKView *)self.view;

编译这部分代码
let skView = self.view as! SKView

或者在Swift中:

replace

答案 1 :(得分:11)

对于那些不想使用Storyboard的用户,您可以在SKView的{​​{1}}功能中简单地将视图创建为ViewController

loadView

答案 2 :(得分:0)

简单修复。您只需将从UIView查看控制器的视图更改为SKView。

答案 3 :(得分:-2)

我终于修好了!我不得不将函数放在GameViewController中并从游戏场景中调用它们,而是将函数放在gameScene中并用self.view替换视图!