NSUserDefaults 没有全局保存
NSUserDefaults is not saving globally
我有一个全局的 NSUser Bool()。当我关闭应用程序并再次 运行 它时,bool 确实保存了,但是当我将退出 sugue 带到我的 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()
}
我有一个 UISwitch,它会如图所示更改,以检查移动到其他场景时 Bool 是否已保存。它调用了 SwitchMain。
尝试以这种方式在 NSUserDefaults 中设置布尔值:
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "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")
}
并以这种方式读取值:
let switchState = NSUserDefaults.standardUserDefaults().boolForKey("buttonState")
更新后请调用以下方法NSUserDefaults
:
NSUserDefaults.standardUserDefaults().synchronize()
此外,按照 Dharmesh 在下面提到的方式塑造代码。
我有一个全局的 NSUser Bool()。当我关闭应用程序并再次 运行 它时,bool 确实保存了,但是当我将退出 sugue 带到我的 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()
}
我有一个 UISwitch,它会如图所示更改,以检查移动到其他场景时 Bool 是否已保存。它调用了 SwitchMain。
尝试以这种方式在 NSUserDefaults 中设置布尔值:
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "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")
}
并以这种方式读取值:
let switchState = NSUserDefaults.standardUserDefaults().boolForKey("buttonState")
更新后请调用以下方法NSUserDefaults
:
NSUserDefaults.standardUserDefaults().synchronize()
此外,按照 Dharmesh 在下面提到的方式塑造代码。