加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 保存并加载高分

发布时间:2020-12-15 01:43:32 所属栏目:百科 来源:网络整理
导读:我试图使用NSUserDefults为我的游戏保存和加载高分(nsinteger). 我创建了一个void函数,用于检查gameoverscore是否大于我的高分,以及它是否可以在它们之间切换.我希望每次比赛结束时都会有一个标签显示我当前的高分. 为此,我为我的NSUsweDefults创建了一个属
我试图使用NSUserDefults为我的游戏保存和加载高分(nsinteger).
我创建了一个void函数,用于检查gameoverscore是否大于我的高分,以及它是否可以在它们之间切换.我希望每次比赛结束时都会有一个标签显示我当前的高分.
为此,我为我的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];
}

当我进入这个viewcontroller时,我的highscorelabel显示0,就像它没有保存我的高分.

我做错了什么?
谢谢!

解决方法

// 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 ];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读