iOS: Use a boolean in NSUserDefaults

Sebastien Peek picture Sebastien Peek · Oct 1, 2010 · Viewed 58.9k times · Source

When the rootViewController of my application is loaded, I want to be able to check whether or not the users login credentials have been saved to NSUserDefaults.

Basically, when the user loads the application and he/she doesn't have her login credentials saved, a modalAlertView will be pushed and the user will be able to save their credentials appropriately. This saves those UITextField strings to a respective NSUserDefault object. However, is it possible, that when this saving is done, I can create an NSUserDefault object which is a boolean and change the value to a yes?

Meaning that the boolean is already set to no, and when the user saves their login credentials, it also changes the boolean to a yes?

Answer

Henrik P. Hessel picture Henrik P. Hessel · Oct 1, 2010

You can set your boolean by using:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"logged_in"];

[[NSUserDefaults standardUserDefaults] synchronize];

and read it by using this code:

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"logged_in"]) {
    [self displayLogin];
} else {
    [self displayMainScreen];
}