增量的小问题

时间:2011-05-18 20:07:05

标签: iphone objective-c xcode

增量编码只是一个小问题。

我有这个按钮以及其他用于添加总分的按钮:

- (IBAction) increaseScore
{
   self.currentScore = self.currentScore + 1;
   currentScoreLabel.text = [NSString stringWithFormat: @"%ld", self.currentScore];
}

每次按下按钮,您都可以添加1,然后我会有一个保存总分的按钮。

当离开应用程序并返回时,我可以再次加载总分,但是当我按下按钮时它会重新开始1,任何人都知道我可以改变这个吗? Ť

感谢您的帮助。

3 个答案:

答案 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:吗?

您是否证明您使用断点或记录再次加载总分?