正在为 iOS 7.1 解压 Swift 中的 .sks 文件

Unarchiving .sks file in Swift for iOS 7.1

我有一个应用程序可以很好地从 iOS 8 中的 .sks 文件加载,使用以下扩展名:

class func unarchiveFromFile(file : NSString) -> SKNode?
{
    if let path = NSBundle.mainBundle().pathForResource(file as String, ofType: "sks")
    {
        var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)!
        var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)

        archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene")
        let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as! GameScene
        archiver.finishDecoding()
        return scene
    }
    else
    {
        return nil
    }
}

但是,当我将它与设备 运行 iOS 7.1 一起使用时,我在 AppDelegate 上得到一个 EXC_BAD_ACCESS 代码 EXC_I386_GPFLT 并且在日志中得到这个:

SKTexture:加载图像资源时出错:"MissingResource.png"

我认为问题可能是 sks 文件加载不正确。谁能告诉我如何从 sks 文件加载我的场景?

感谢您的帮助,

有趣的是,我通过检查 iOS 8 之前是否为 运行 设法解决了这个问题。如果是这样,我会加载游戏场景然后复制它。这以某种方式解决了问题:

        let tempScene = GameScene.unarchiveFromFile(gameSceneFile) as? GameScene
        scene = tempScene!.copy() as! GameScene