Swift 无法从sks文件加载场景

Swift 无法从sks文件加载场景,swift,sprite-kit,Swift,Sprite Kit,我有一个包含场景(GameSecene类)的sks文件,我在GameSecene中用coder:实现了init。我正试图通过以下方式在控制器中加载场景: let file = NSBundle.mainBundle().pathForResource("GameScene", ofType: "sks")! if let scene = NSKeyedUnarchiver.unarchiveObjectWithFile(file) as? GameScene {...} 但是块永远不会执行,

我有一个包含场景(GameSecene类)的sks文件,我在GameSecene中用coder:实现了init。我正试图通过以下方式在控制器中加载场景:

let file = NSBundle.mainBundle().pathForResource("GameScene", ofType: "sks")!
if let scene = NSKeyedUnarchiver.unarchiveObjectWithFile(file) as? GameScene 
{...}

但是块永远不会执行,initWithCoder:永远不会被调用

尝试
required init?(coder-aDecoder:NSCoder){…}
代替。它已经声明为“required”。如果let scene=GameSecene(文件名为:“GameSecene”){…}尝试使用
来加载你的.sksfile@RamyAlZuhouri由于unarchiveObjectWithFile返回的实例是SKScene,所以您当前正在执行的操作失败,不是游戏场景。我想问一下,创建这样的场景而不是使用便利文件名有什么意义?@0x141E如果没有为来自超类(SKScene)的所有其他指定初始值设定项提供自定义实现,则可能会失败,因为便利文件名将不会被继承(由于关于的规则2)。不过,这只是猜测,还需要OP游戏场景中的更多代码进行确认。但我想说,如果他现在尝试使用fileNamed,就会发生这种情况。请尝试使用
required init?(coder aDecoder:NSCoder){…}
。它已经声明为“required”。尝试使用
if let scene=GameSecene(fileNamed:“GameSecene”){…}
加载你的.sksfile@RamyAlZuhouri你现在在做什么,由于unarchiveObjectWithFile返回的实例是SKScene,而不是GameSene,因此失败。我想问一下,创建这样的场景而不是使用便利文件名有什么意义?@0x141E如果没有为来自超类(SKScene)的所有其他指定初始值设定项提供自定义实现,则可能会失败,因为便利文件名将不会被继承(由于关于的规则2)。不过,这只是猜测,还需要OP游戏场景中的更多代码进行确认。但我想说,如果他现在尝试使用fileNamed,就会发生这种情况。