【发布时间】:2018-02-14 05:55:08
【问题描述】:
我正在尝试使用 NSUserDefaults 保存 BOOL 值和一些简单的字符串。但是 NSUserdefaults 没有保存任何值。在将值保存到 NSUserDefaults 后,我还使用了同步。我用来将 BOOL 保存到 NSUserDefaults 的方式如下。
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loadfirsttimewindow"];
[[NSUserDefaults standardUserDefaults] synchronize];
我用来将字符串保存到 NSUserDefaults 的方式如下。
[[NSUserDefaults standardUserDefaults] setValue:title1 forKey:@"item1"];
[[NSUserDefaults standardUserDefaults] synchronize];
所以请让我知道我的 NSUserDefaults 值的存储位置以及为什么它没有将任何值保存到 NSUserDefaults 中。
我只是想保存即使在应用程序关闭后仍会保存的值。
我用于将值保存到 NSUserDefaults 中的代码示例如下:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSLog(@"%hhd",[[NSUserDefaults standardUserDefaults] boolForKey:@"loadfirsttimewindow"]);
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"loadfirsttimewindow"])
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"loadfirsttimewindow"];
[[NSUserDefaults standardUserDefaults] synchronize];
*I have written code for the thing I have to do only when the application is launched for the first time.*
}
else
{
*I have written code for the thing I have to after the application is launched for the first time.*
}
}
【问题讨论】:
-
你怎么知道这些值没有被保存?顺便说一句 - 不要使用
setValue:forKey:。使用setObject:forKey:。 -
@rmaddy 我已将值保存到 NSUserDefaults 中,然后尝试打印该键的值。
-
用完全展示您的问题的代码更新您的问题。
-
@rmaddy 我添加了一个代码示例。像这样,我尝试在 NSUserDefaults 中保存许多值。但是没有保存任何值。
-
我试过这样,结果是,它只给我设计应用程序的一个设备提供用户名和密码。
标签: objective-c macos cocoa nsuserdefaults