Reputation:
I have a Global Bool called InGameMusicOnOff and its key is called InGameMusicKey. This Bool determines weather the UIswitch will be to the left or right upon opening the app. but it doesn't work in other words the Bool value doesn't get saved to NSUser default. so overtime i one my app the state is exactly the same as it originally was even if i change its state by tapping it. I simply need to save the Boolean value. I'm using Xcode 6.4 in swift.
Code:
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()
}
}
Upvotes: 1
Views: 950
Reputation: 38162
This is how you can save/fetch BOOL (UISwitch
state being bool) in User Defaults:
[[NSUserDefaults standardUserDefaults] setBool:ButtonState forKey:@"buttonState"];
[[NSUserDefaults standardUserDefaults] boolForKey:@"buttonState"];
Swift Way:
NSUserDefaults.standardUserDefaults().setObject(Bool(false), forKey:"buttonState")
let buttonState = NSUserDefaults.standardUserDefaults().objectForKey("buttonState") as! Bool
if buttonState == true {
}
Upvotes: 1