在Swift for iOS 7.1中解压.sks文件
我有一个应用程序,它使用以下扩展名从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文件加载我的场景?
感谢您的帮助,
有趣的是,我设法通过检查iOS8之前是否正在运行来解决这个问题。 如果是这样,我会加载游戏场景,然后复制它。 不知何故解决了这个问题:
let tempScene = GameScene.unarchiveFromFile(gameSceneFile) as? GameScene scene = tempScene!.copy() as! GameScene
- Swift支持无效:SwiftSupport文件夹在Xcode 7中缺less错误
- 我如何自动滚动表格视图? (迅速)
- 如何用SwiftdebuggingSceneKit中的自定义几何
- 使用Swift UIApplication子类的Objective-C项目。 错误:类未加载
- 如何在Swift中调用Objective-C块的属性
- 枚举rawvalue作为AnyClass
- 如何正确使用iOS(Swift)SceneKit SCNSceneRenderer unprojectPoint
- 如何删除iOS8中的WKWebview的caching?
- UIPopoverPresentationController以全屏显示popup窗口