Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Saving bool to NSUserDefaults and using it in a if statement using Swift

I am struggling to figure out how to do an if statement with a bool saved to NSUserDefaults using Swift. I believe I know how to save the bool to NSUserDefaults but a confirmation in that would be greatly appreciated. This is the Objective-C code I am trying to figure out how to use with swift.

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"onoroff"]) {
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"onoroff"];
}

this is what I have so far in Swift...

if  NSUserDefaults.standardUserDefaults().objectForKey("onoroff") != nil{
    NSUserDefaults.standardUserDefaults().setBool(false, forKey: "onoroff")
}

I think I might have figure it out. Can anyone confirm this is the correct way to save a bool to NSUserDefaults and use a if statement with it. Here it is:

if  !NSUserDefaults.standardUserDefaults().boolForKey("onoroff"){
     NSUserDefaults.standardUserDefaults().setBool(true, forKey: "onoroff")
}else{ NSUserDefaults.standardUserDefaults().setBool(false, forKey: "onoroff")
     }
like image 817
Emmanuel Amaro Avatar asked Jun 26 '15 09:06

Emmanuel Amaro


1 Answers

if NSUserDefaults.standardUserDefaults().boolForKey("onoroff") == true

The above code is only check wheather the value of the key is true or not.

or

if NSUserDefaults.standardUserDefaults().objectForKey("onoroff")

The above code check wheather the value of the key is true or not as well if there is no value for the key.(Means Nothing inserted in the UserDefault of "onoroff").

EDIT

if !NSUserDefaults.standardUserDefaults().objectForKey("onoroff")
{
     NSUserDefaults.standardUserDefaults().setBool(true, forKey: "onoroff")
}
else
{
    NSUserDefaults.standardUserDefaults().setBool(false, forKey: "onoroff")
}
like image 198
V.J. Avatar answered Oct 04 '22 10:10

V.J.