我们可以使用以下代码来获取应用程序的设置:
[[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"]
但是,如何确定是否存储了此设置?
附言我不能为此使用特殊的BOOL设置,因为我需要知道应用程序的先前版本中是否存储了确切的设置。
最佳答案
使用objectForKey
:
NSNumber *integerSetting = [[NSUserDefaults standardUserDefaults] objectForKey:@"settingName"];
if (integerSetting) {
NSInteger value = [integerSetting integerValue];
// use value
} else {
// setting not there
}
如果这样做的目的是设置一些默认值,那么最好设置一个默认值。在应用程序开始时执行以下操作:
NSDictionary *defaults = @{ @"settingName" : @42 }; // set some default value
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
请注意,注册默认值实际上不会更改任何值。如果尝试获取尚无明确值的值,则会检索已注册的默认值。
现在,您的代码可以简单地是:
NSInteger value = [[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"];
关于iphone - 如何确定设置是否存储在iOS的应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028275/