xcode - 如何使用 NSUserDefault 在 Swift 中存储 UISwitch 状态

标签 xcode swift

我有一个名为 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/

相关文章:

ios - undefined symbol : _OBJC_CLASS_$_WKInterfaceController error after updating Xcode to version 11. 1

ios - React-Native 远程调试器无法在 iPhone 上运行

ios - 在 calloutAccessoryControlTapped 上检测仅点击 rightCalloutAccessoryView

swift - 获取周围坐标的最短代码是什么?

ios - 保存子上下文时获取 NSFetchedResultsController 的批量更新

ios - 我如何在主目标和 UITest 运行器目标之间共享数据?

ios - Xcode 版本 6.2 没有 iOS 8.3 构建目标

ios - iOS 8 中的 NavigationBar 栏、色调和标题文本颜色

ios - 更新设备旋转变化时的阴影路径。阴影问题

ios - 如何根据其中的 UITextView 的大小调整 UITableViewCell 的大小?