无法将'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
答案 0 :(得分:52)
转到故事板,选择包含SpriteKit游戏的UIViewController,然后从左侧菜单中选择视图:
现在转到Identity Inspector,确保Class为UIView
而不是UIViewController
:
您现在应该能够从// 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替换视图!