Xcode NSUserDefaults未全局保存

Xcode NSUserDefaults未全局保存,xcode,swift,nsuserdefaults,Xcode,Swift,Nsuserdefaults,我有一个NSUser Bool(),它在a全局中。当我关闭应用程序并再次运行时,bool会保存,但当我将退出建议带到sKcene时,sKcene仍然认为bool值是它原来的值,即使。我已经使用SwitchMainOnOff函数更改了值。请帮忙 import AVFoundation import Foundation import SpriteKit import GameKit import UIKit import iAd var buttonState = NSUserDefault

我有一个NSUser Bool(),它在a全局中。当我关闭应用程序并再次运行时,bool会保存,但当我将退出建议带到sKcene时,sKcene仍然认为bool值是它原来的值,即使。我已经使用SwitchMainOnOff函数更改了值。请帮忙

import AVFoundation
import Foundation
import SpriteKit
import GameKit
import UIKit
import iAd



var buttonState = NSUserDefaults.standardUserDefaults().objectForKey("buttonState") as! Bool

class SoundController: UIViewController {

func SwitchMainOnOff() {

        if SwitchMain.on == true {
            println("SwitchMain is on from function")
            SwitchMain.on = true
            NSUserDefaults.standardUserDefaults().setObject(Bool(true), forKey:"buttonState")



        }
        if SwitchMain.on == false {
            println("SwitchMain is off from function")
            SwitchMain.on = false
            NSUserDefaults.standardUserDefaults().setObject(Bool(false), forKey:"buttonState")

        }


     }
func Correct() {
    if buttonState == true{
        println("SwitchMain is on")
        SwitchMain.on = true
    }

    if buttonState == false{
        println("SwitchMain is off ")
        SwitchMain.on = false
    }
  }

@IBAction func SwitchMain(sender: AnyObject) {
    SwitchMainOnOff()


    }

我有一个UI开关,它将如图所示进行更改,以检查在移动到其他场景时是否保存了Bool。它被称为SwitchMain。

尝试用以下方式将布尔设置为NSUserDefaults:

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "buttonState")
let switchState = NSUserDefaults.standardUserDefaults().boolForKey("buttonState")
您的代码将是:

if SwitchMain.on == true {
    println("SwitchMain is on from function")
    SwitchMain.on = true
    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "buttonState")

}
    if SwitchMain.on == false {
    println("SwitchMain is off from function")
    SwitchMain.on = false
    NSUserDefaults.standardUserDefaults().setBool(false, forKey: "buttonState")

}
并以这种方式读取值:

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "buttonState")
let switchState = NSUserDefaults.standardUserDefaults().boolForKey("buttonState")

更新
NSUserDefaults
后,请调用以下方法:

NSUserDefaults.standardUserDefaults().synchronize()
另外,按照达尔梅什在下面提到的方式来塑造代码