致命错误:在GameViewController中展开Optional值时意外发现nil

时间:2014-12-24 17:36:43

标签: swift sprite-kit

我的GameViewController中一直出现错误..

这是我的GameViewController: 我如何摆脱这个错误:致命错误:在解开一个Optional值时意外地发现了nil (lldb),它就行了“让sceneData = NSData(contentsOfFile ......”

import UIKit
import SpriteKit
import AVFoundation
import Social

extension SKNode {
class func unarchiveFromFile(file : NSString) -> SKNode? {

    let path = NSBundle.mainBundle().pathForResource(file, ofType: "sks")

    let sceneData = NSData(contentsOfFile:path!, options: .DataReadingMappedIfSafe, error: nil)
    let archiver = NSKeyedUnarchiver(forReadingWithData: sceneData!)

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

class GameViewController: UIViewController, UITextFieldDelegate{







override func viewDidLoad() {
    super.viewDidLoad()
    let skView = view as SKView

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        println("gamescc")
    }

    skView.multipleTouchEnabled = false
    scene = GameMenuScene(size: skView.bounds.size)
    //scene.weakGameRef = self
    //scene.scaleMode = SKSceneScaleMode.ResizeFill
    skView.showsFPS = true
    skView.showsNodeCount = true
    skView.presentScene(scene)
}
}

2 个答案:

答案 0 :(得分:0)

您的文件中是否存在您的文件。

转到您的项目目标 - >构建阶段 - >复制捆绑资源并检查是否存在文件。如果没有添加到捆绑资源。

在打开它之前,请始终检查optionals if条件或可选链接。

答案 1 :(得分:0)

我在文本中有一个特殊字符“和'。它不是常规的”,但看起来不同并且是由复制粘贴造成的 我删除了不必要的特殊字符,它解决了问题。 找到合适的角色

很棘手

在另一个文件中,我有这个字符ë是'在另一个Windows文件中