Swift3 为什么这不能节约?

Swift3 为什么这不能节约?,swift3,Swift3,我正在尝试使用NSUserdefaults保存一条简单的信息。我正试图拯救一个精灵,使其阿尔法为1。下面是我是怎么做的 第一个场景:级别选择(精灵alpha为0.2) 当用户完成级别时:(编辑级别中的精灵选择为等于1) GameViewController: override func viewDidLoad() { super.viewDidLoad() if let view = self.view as! SKView? { // Load the SKS

我正在尝试使用NSUserdefaults保存一条简单的信息。我正试图拯救一个精灵,使其阿尔法为1。下面是我是怎么做的

第一个场景:级别选择(精灵alpha为0.2) 当用户完成级别时:(编辑级别中的精灵选择为等于1)

GameViewController:

override func viewDidLoad() {
    super.viewDidLoad()

    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        if let scene = levelselectscene {
            // Set the scale mode to scale to fit the window

            scene.scaleMode = .fill



            // Present the scene
            view.presentScene(scene)
        }

        view.ignoresSiblingOrder = true

        view.showsFPS = true
        view.showsNodeCount = true
    }
}

override var shouldAutorotate: Bool {
    return true
}
级别选择:

 override func didMove(to view: SKView) {

    if unlockLevelTwoButton == true {
        levelselectscene?.childNode(withName: "LevelTwoButton")?.alpha = 1
           UserDefaults.standard.set(unlockLevelTwoButton, forKey: "LevelTwoUnlocked")
        print("I got this far")
    }

}
第一级:

func didbegen(uu联系人:skphysiccontact){

三星:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {



    if isLevelOneCompleted == true{
        unlockLevelTwoButton = true
        UserDefaults.standard.set(isLevelOneCompleted, forKey: "LevelOne")

        UserDefaults.standard.synchronize()
        levelselectscene?.scaleMode = .fill
        levelselectscene?.childNode(withName: "levelTwoButton")?.alpha = 1
        self.view?.presentScene(levelselectscene)



    }

无法理解它为什么不保存!

根据您显示的代码,您使用一个名称保存它,并使用不同的名称(LevelTwoUnlocked)和(LevelTwoButton)检索它

我希望我能说这从未发生在我身上。哇,我怎么没有看到这一点?谢谢。但遗憾的是,它仍然没有保存值。我不知道为什么。我已经完成了第一个关卡,alpha被更改,退出应用程序,然后重新启动。关卡选择仍然在0.2的节点上显示SKsprite。为什么会这样?还有其他建议吗ons?我觉得我完全是根据你的问题和提供的代码来回答这个问题的。请接受并投票,然后用附加代码提出一个新问题。无论你还有什么问题,它们都可能在你的代码库的其他地方。我很乐意继续帮助你。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {



    if isLevelOneCompleted == true{
        unlockLevelTwoButton = true
        UserDefaults.standard.set(isLevelOneCompleted, forKey: "LevelOne")

        UserDefaults.standard.synchronize()
        levelselectscene?.scaleMode = .fill
        levelselectscene?.childNode(withName: "levelTwoButton")?.alpha = 1
        self.view?.presentScene(levelselectscene)



    }
 if let z = UserDefaults.standard.object(forKey: "LevelTwoButton")
    {
        unlockLevelTwoButton = z as! Bool
    }