Xcode NSUserDefaults未全局保存
我有一个NSUser Bool(),它在a全局中。当我关闭应用程序并再次运行时,bool会保存,但当我将退出建议带到sKcene时,sKcene仍然认为bool值是它原来的值,即使。我已经使用SwitchMainOnOff函数更改了值。请帮忙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
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()
另外,按照达尔梅什在下面提到的方式来塑造代码