NSUserDefaults:app.plist会在应用启动时重置

时间:2014-08-12 17:05:49

标签: ios objective-c nsuserdefaults

我正在使用NSUserDefaults存储我的应用设置/配置。

负责保存默认值的代码如下:

NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];

// saving settings
[standardUserDefaults setObject:address.text forKey:@"URL"];
[standardUserDefaults setObject:username.text forKey:@"username"];
[standardUserDefaults setObject:password.text forKey:@"password"];

// synchronize the settings
[standardUserDefaults synchronize];

事实上,设置似乎已经保存。我从Libary / Preferences打开plist文件,看到值已保存。我看到那些在我的方法完成工作之后,[甚至在关闭应用程序之后]。

我的问题:每当我再次启动我的应用程序时,保存的值都会从plist文件中删除[键仍然存在],我显然无法加载我的首选项。

请告知。

1 个答案:

答案 0 :(得分:-1)

您可以使用保存设置:

    NSMutableDictionary *dictSetting = [[NSMutableDictionary alloc] init];
    [dictSetting setValue:address.text forKey:@"URL"];
    [dictSetting setValue:username.text forKey:@"username"];
    [dictSetting setValue:password.text forKey:@"password"];     
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:dictSetting forKey:@"SETTINGS"];
    [defaults synchronize];

检索设置:

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSDictionary *dictSettingData = [defaults objectForKey:@"SETTINGS"];
    NSString *url = [dictSettingData valueForKey:@"URL"];
    NSString *username = [dictSettingData valueForKey:@"username"];
    NSString *password = [dictSettingData valueForKey:@"password"];