我有一个名为 InGameMusicOnOff 的 Global Bool,它的键名为 InGameMusicKey。此 Bool 确定打开应用程序时 UIswitch 将向左还是向右的天气。但它不起作用,换句话说,Bool 值不会默认保存到 NSUser 中。所以加类我的应用程序状态与原来的状态完全相同,即使我通过点击它来改变它的状态。我只需要保存 bool 值。我正在快速使用 Xcode 6.4。
代码:
import AVFoundation
import Foundation
import SpriteKit
import GameKit
import UIKit
import iAd
var InGameMusicOnOff = Bool()
var InGameMusicKey = "InGameMusicOnOff"
class SoundController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if InGameMusicOnOff == true {
InGameMusicOnOff = true
NSUserDefaults.standardUserDefaults().objectForKey("InGameMusicOnOff") as! Bool!
}
if InGameMusicOnOff == false{
self.SwitchMain.on = false
InGameMusicOnOff = false
NSUserDefaults.standardUserDefaults().objectForKey("InGameMusicOnOff") as! Bool!
}
}
func SwitchMainOnOff() {
if SwitchMain.on {
println("SwitchMain is on")
InGameMusicOnOff = true
NSUserDefaults.standardUserDefaults().objectForKey("InGameMusicOnOff") as! Bool!
}
if SwitchMain.on == false {
println("SwitchMain is off")
InGameMusicOnOff = false
NSUserDefaults.standardUserDefaults().objectForKey("InGameMusicOnOff") as! Bool!
}
@IBAction func SwitchMain(sender: AnyObject) {
SwitchMainOnOff()
}
}
最佳答案
这是在用户默认值中保存/获取 BOOL(UISwitch
状态为 bool)的方法:
[[NSUserDefaults standardUserDefaults] setBool:ButtonState forKey:@"buttonState"];
[[NSUserDefaults standardUserDefaults] boolForKey:@"buttonState"];
快捷方式:
NSUserDefaults.standardUserDefaults().setObject(Bool(false), forKey:"buttonState")
let buttonState = NSUserDefaults.standardUserDefaults().objectForKey("buttonState") as! Bool
if buttonState == true {
}
关于xcode - 如何使用 NSUserDefault 在 Swift 中存储 UISwitch 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32647365/