如何确定iOS上的应用程序是否存储了设置?

时间:2013-02-22 16:03:55

标签: iphone ios ipad settings

我们可以使用以下代码来获取应用程序的设置:

[[NSUserDefaults standardUserDefaults] integerForKey:@"settingName"]

但是如何确定是否存储了此设置?

P.S。我不能使用特殊的BOOL设置,因为我需要知道是否存储了以前版本的应用程序的确切设置。

1 个答案:

答案 0 :(得分:3)

使用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"];