【发布时间】:2015-10-08 17:59:08
【问题描述】:
当我退出应用程序时,存储在 NSUserDefaults 中的值不会被保存。我保存了这样的值:
[[NSUserDefaults standardUserDefaults] setValue:@"enabled" forKey:@"notifications"];
[[NSUserDefaults standardUserDefaults] synchronize];
即使在应用退出后,如何使用 NSUserDefaults 存储内容?
这就是我检索值的方式:
[[NSUserDefaults standardUserDefaults] valueForKey:@"notifications"]
前两行确实会运行,因为我让它们在按下按钮时运行。当我转到另一个视图并返回带有按钮的视图时,它会返回我设置的值。
我知道出了什么问题。我在第一个视图中有这段代码,并假设它工作正常:
NSUserDefaults *Def = [NSUserDefaults standardUserDefaults];
NSString *Ver = [Def stringForKey:@"Version"];
NSString *CurVer = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
if(Ver == nil || [Ver compare:CurVer] != 0)
{
if(Ver == nil)
{
[[NSUserDefaults standardUserDefaults] setValue:@"disabled" forKey:@"notifications"];
}
}
【问题讨论】:
-
你在 setValue 中的值在哪里?现在,您将其设置为字符串“启用”。你怎么称呼它?
-
应用程序何时退出,以及与该代码运行相关的方式(您确定它确实运行了)?
-
nsuserdefaults的“notifications”键的打印输出是什么?
-
使用这个:NSLog("%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"notifications"]);你能告诉我它打印的是什么吗?
-
该日志打印“启用”
标签: ios objective-c nsuserdefaults