Using NSUserDefaults
Here is a quick reference for some of the things you can do with NSUserDefaults
Saving
Retrieving
Clearing NSUserDefaults
Here is a quick reference for some of the things you can do with NSUserDefaults
Saving
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];
// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];
// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];
// This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
[prefs synchronize];
Retrieving
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];
// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];
Clearing NSUserDefaults
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"defunctPreference"];
- (NSUserDefaults *) loadUserSettings:(NSString *)aKey
{
// Load user settings
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
if (![settings stringForKey:aKey])
{
// The settings haven't been initialized, so manually init them based
// the contents of the the settings bundle
NSString *bundle = [[[NSBundle mainBundle] bundlePath]
stringByAppendingPathComponent:@"Settings.bundle/Root.plist"];
NSDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:bundle]
objectForKey:@"PreferenceSpecifiers"];
NSMutableDictionary *defaults = [NSMutableDictionary new];
// Loop through the bundle settings preferences and pull out the key/default pairs
for (NSDictionary* setting in plist)
{
NSString *key = [setting objectForKey:@"Key"];
if (key)
[defaults setObject:[setting objectForKey:@"DefaultValue"] forKey:key];
}
// Persist the newly initialized default settings and reload them
[settings setPersistentDomain:defaults forName:[[NSBundle mainBundle] bundleIdentifier]];
settings = [NSUserDefaults standardUserDefaults];
}
return settings;
}