增量编码只是一个小问题。
我有这个按钮以及其他用于添加总分的按钮:
- (IBAction) increaseScore
{
self.currentScore = self.currentScore + 1;
currentScoreLabel.text = [NSString stringWithFormat: @"%ld", self.currentScore];
}
每次按下按钮,您都可以添加1,然后我会有一个保存总分的按钮。
当离开应用程序并返回时,我可以再次加载总分,但是当我按下按钮时它会重新开始1,任何人都知道我可以改变这个吗? Ť
感谢您的帮助。
答案 0 :(得分:2)
如果您关闭应用程序,则需要保存数据。您可以使用以下代码:
[[NSUserDefaults standardUserDefaults] setInteger:self.currentScore forKey:@"score"];
NSInteger score = [[NSUserDefaults standardUserDefaults] integerForKey:@"score"];
理想情况下,您应该只在应用程序启动时使用它一次,但如果性能不是问题,每次使用它也会有效。
<强>更新强>
将数据保存在某处,以免重新加载。例如,在您的应用程序委托中,您可以使用[[UIApplication sharedApplication] delegate]
从任何地方访问该委托,或者将类保持为单身,并使用如下代码:
+(MySharedDataClass *)singleton {
static dispatch_once_t pred;
static MySharedDataClass *shared = nil;
dispatch_once(&pred, ^{
shared = [[MySharedDataClass alloc] init];
});
return shared;
}
否则可能会卸载包含您的值的类。
答案 1 :(得分:1)
如果您希望分数持久,有几种方法可以做到这一点,例如使用plist。见this。
答案 2 :(得分:0)
当您“......再次加载总分...”时,您确定要在self.currentScore = self.totalScore;
中设置viewDidLoad:
吗?
您是否证明您使用断点或记录再次加载总分?