I trying to store some settings in NSUserDefaults, but It seems that the app won’t store the setBool values.
This works:
[[NSUserDefaults standardUserDefaults] setValue: @"hello" forKey: @"test"];
[[NSUserDefaults standardUserDefaults] synchronize];
When I terminate the app and restart it, the value have been saved. However, when I do this:
[[NSUserDefaults standardUserDefaults] setBool: YES forKey: @"test"];
[[NSUserDefaults standardUserDefaults] synchronize];
It won’t save after I close the app and restart it.
Should I file a bug report, or is there something I’m missing here?
Thanks
Edit:
I figure what I did wrong. In AppDelegate, I wanted to check if the boolForKey was set, and it it wasn’t I did this:
if (![defaults boolForKey: @"test123"])
[defaults setBool: YES forKey: @"test123"];
… however, when it comes to boolWithKey, the “!” just check if the bool is YES or NO, not if its nil.
How can you be sure its not working? I tried your code and it works for me. Are you sure you are reading the Boolean in the correct way AFTER you write it?
This code SHOULD work: