【问题标题】:How to find out if a setting is stored or not on app for iOS?如何确定设置是否存储在 iOS 应用程序上?
【发布时间】:2013-02-08 07:30:10
【问题描述】:

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

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

但是如何知道这个设置是否被存储了呢?

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

【问题讨论】:

    标签: iphone ios ipad settings


    【解决方案1】:

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

    【讨论】:

    • 谢谢! NSUserDefaults(而不是 NSUserDefault)在第一个代码上是正确的。
    猜你喜欢
    • 2011-08-10
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2021-07-26
    • 2016-09-13
    相关资源
    最近更新 更多