保存并加载高分

4

我尝试使用NSUserDefults保存和加载我的游戏高分(nsinteger)。我创建了一个void函数,检查游戏结束得分是否大于我的高分,如果是,则在它们之间切换。每次游戏结束时,我希望有一个标签显示我的当前最高分。

为此,我创建了一个NSUsweDefults属性,在我的viewdidload中尝试加载当前的高分,并使用另一个函数(checkIfHighscore)进行检查。以下是我的NSUserDefults属性:

@property(readwrite) NSUserDefaults *prefs;

这是我的viewDidLoad代码:

    NSInteger currectHighscore =  [prefs integerForKey:@"highscore"];
    highScoreLabel.text = [NSString stringWithFormat:@"%d",currectHighscore];

这是我的 checkIfHighscore 方法:

-(void)checkIfHighScore
{
    if(gameOverScore > highScore)
    {
        highScore = gameOverScore;
        [self newHighscoreAnimation];

        [prefs setInteger:highScore forKey:@"highscore"];
        [prefs synchronize];

    }
    highScoreLabel.text = [NSString stringWithFormat:@"Highscore:  %d", highScore];
}

当我进入这个视图控制器时,我的最高分标签显示为0,好像它没有保存我的最高分。

我做错了什么吗? 谢谢!


你没有告诉我们出了什么问题。 - trojanfoe
1个回答

3
// Snippet used to save your highscore in the prefs.
int highScore  = yourGameScore;
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"HighScore"];
[[NSUserDefaults standardUserDefaults] synchronize];


// Snippet used to get your highscore from the prefs.
highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScore"] intValue ];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接