1
我们可以使用下面的代码来获取应用程序的设置:如何确定设置是否存储在iOS应用程序中?
[[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"]
但如何找出是否该设置保存或不?
P.S.我不能使用特殊的BOOL设置,因为我需要知道确切的设置是否存储在应用程序的先前版本中。
我们可以使用下面的代码来获取应用程序的设置:如何确定设置是否存储在iOS应用程序中?
[[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"]
但如何找出是否该设置保存或不?
P.S.我不能使用特殊的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"];
+1尼斯一个喜欢的答案:) – 2013-02-22 16:19:15
谢谢!在第一个代码中,'NSUserDefaults'(而不是'NSUserDefault')是正确的。 – Dmitry 2013-02-22 16:24:56