我已经保存了使用 NSUserDefaults 保存的数据。我的印象是,如果已经没有任何内容保存到密钥中(第一次运行应用程序),它将默认为 0。然而,情况似乎并非如此。
这是我所拥有的:
To save:
- (void)viewWillDisappear:(BOOL)animated
{
[[NSUserDefaults standardUserDefaults] setInteger:setbatteryHealthCalculated forKey:@"healthValue"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
To load:
- (void) viewWillAppear:(BOOL)animated
{
NSInteger setbatteryHealthCalculated = [[NSUserDefaults standardUserDefaults] integerForKey:@"healthValue"];
}
要检查保存值:
- (IBAction)check{
NSInteger setbatteryHealthCalculated = [[NSUserDefaults standardUserDefaults] integerForKey:@"healthValue"];
if (setbatteryHealthCalculated = 0) {
[self performSelector:@selector(displayAlert) withObject:nil];
}
}
if (setbatteryHealthCalculated = 0) {
嗯。应该
if (setbatteryHealthCalculated == 0)
比较运算符是==
代替=
在类 C 语言中。
原始代码将设置setbatteryHealthCalculated
无论如何都为0。由于 0 为假,因此if
分支永远不会被执行,也不会显示任何警报。
此外,原始代码有不平衡的大括号。
BTW, is setbatteryHealthCalculated
伊瓦尔?如果是,则删除其前面的 NSInteger。否则,您将声明一个隐藏 ivar 的局部变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)