我需要保存一个变量,每当用户点击应用程序中的按钮时,该变量就会递增。我一直试图用NSUserDefaults
做到这一点但没有成功。这是我正在使用的代码:
[[NSUserDefaults standardUserDefaults] setInteger:i++ forKey:@"AppCount"];
但是,当我在日志中输出时,我会继续0
。
非常感谢任何帮助。
答案 0 :(得分:2)
尝试添加:
[[NSUserDefaults standardUserDefaults] synchronize];
每次更改整数值后。
在synchronize
上引用Apple的文档:
将对持久域的任何修改写入磁盘并进行更新 所有未修改的持久域到磁盘上的内容。
因此,通过此修改,您的最终代码应如下所示:
[[NSUserDefaults standardUserDefaults] setInteger:i++ forKey:@"AppCount"];
[[NSUserDefaults standardUserDefaults] synchronize];
编辑:实际上,在第二次考虑时,试一试:
我认为问题在于使用i ++假设应用程序始终能够跟踪计数,每次重新进入应用程序时我都会重置。
以下作品,我刚试过它。
if (![[NSUserDefaults standardUserDefaults] integerForKey:@"AppCount"]) {
[[NSUserDefaults standardUserDefaults] setInteger:i forKey:@"AppCount"];
}else{
[[NSUserDefaults standardUserDefaults] setInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"AppCount"] + 1 forKey:@"AppCount"];
}
[[NSUserDefaults standardUserDefaults] synchronize];
答案 1 :(得分:0)
您可以使用Static NSUIInteger appCount = 0; 在函数用户点击中增加它的值appCount ++; 保持应用程序中函数调用的值。关闭app后,将其写入文件。
答案 2 :(得分:0)
- (void)viewDidLoad {
[super viewDidLoad];
countFirst= [[NSUserDefaults standardUserDefaults]integerForKey:@"Counter"];
countFirst++;
}
在您希望增加的位置写下此内容。
[[NSUserDefaults standardUserDefaults] setInteger:countFirst++ forKey:@"Counter"];