This approach is particularly useful when a user may have upgraded your app, so settings that were previously undefined are now attempted to be retrieved.
A few carefully written methods should get you on track. The fiddly bit is the lack of support for a [[NSUserDefault standardUserDefaults] keyExistsWithName:...] function, but this can be worked around using the objectForKey method, which returns nil if a key is not found:
// Default handling
- (BOOL) boolOrDefaultForKey:(NSString *)keyName withDefault:(BOOL)defaultValue
{
if ([self keyExists:keyName])
return [[NSUserDefaults standardUserDefaults] boolForKey:keyName];
else
return defaultValue;
}
- (BOOL) integerOrDefaultForKey:(NSString *)keyName withDefault:(BOOL)defaultValue
{
if ([self keyExists:keyName])
return [[NSUserDefaults standardUserDefaults] integerForKey:keyName];
else
return defaultValue;
}
- (BOOL) keyExists:(NSString *) keyName
{
return ([[NSUserDefaults standardUserDefaults] objectForKey:keyName] != nil);
}

0 comments:
Post a Comment