【问题标题】:IOS: NSUserDefaults Can't find settings on deviceIOS:NSUserDefaults 在设备上找不到设置
【发布时间】:2026-02-23 16:05:01
【问题描述】:

我将应用内的一些应用设置表单移至“设置”菜单

在模拟器上一切正常(和往常一样:D),但是当我尝试部署到设备时,它在我的 NSUserDefaults 中找不到设置值。

在“设置”菜单中,我可以看到我的应用程序及其设置,但是当我运行此代码时:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults synchronize];   
    NSString *loc=[defaults objectForKey:@"currency"];
    NSLog(@"start");
    NSLog(@"--- %@",loc);
    [defaults setObject:loc forKey:@"localisation"];

我明白了:

2012-09-17 15:51:08.240 MyApp[259:707] 开始

2012-09-17 15:51:08.243 MyApp[259:707] --- (null)

有什么想法吗?

【问题讨论】:

  • 你是在设置货币的值吗
  • 您解决了这个问题吗?否则,我会先尝试 NSLog(@"%@", defaults);,然后再尝试 NSLogging loc
  • 发现问题,如果用户没有设置值,它不会出现。如何从 plist 中设置默认值?

标签: ios nsuserdefaults


【解决方案1】:

NSUserDefaults 有一个方法registerDefaults:

【讨论】: