iphone - 如何确定设置是否存储在iOS的应用程序中?

标签 iphone ios ipad settings

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

[[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/

相关文章:

ios - 在模拟器上调整大小但在设备上不调整大小?

iPhone 动画基于输入值(触摸)而不是时间

ios - 获取错误 "-[NSThread threadDictionary]: message sent to deallocated instance"

iphone - 重新定位 iOS 应用程序启动图像

iOS 13 暗模式 objc 字符串

ios - CoreAnimation 类错误

iphone - iPad/iPhone 中的@dynamic 是什么

iphone - 分配,可变到不可变数组?

iphone - MPVolumeView 拇指图像不居中

iphone - 实例变量在 iOS 应用程序中不返回值