我想在我的應用程序中使用 synchronize
保存高分,但是我得到的是亂碼數字。在這裏我得到了什麼:
GameScene.mNSUserDefaults standardUserDefaults同步給出錯誤的結果目標c
if (highScore <score) {
highScore = score;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:highScore forKey:@"highScore"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
GameOver.m
NSUserDefaults *prefs =[NSUserDefaults standardUserDefaults];
NSString *rezult =[prefs stringForKey:@"highScore"];
SKLabelNode *highscorelabel = [SKLabelNode labelNodeWithFontNamed:@"Menlo-Bold"];
highscorelabel.text =[NSString stringWithFormat:@"%ld",(long)rezult];
highscorelabel.position = CGPointMake(CGRectGetMidX(self.frame), 280);
highscorelabel.fontSize = 45;
highscorelabel.zPosition = 5;
[self addChild:highscorelabel];
爲什麼我得到錯誤的價值,以及如何解決這個問題?
''[prefs setInteger:highScore forKey:@「highScore」];'你寫一個整數;那麼你將它讀回爲一個字符串指針:'NSString * rezult = [prefs stringForKey:@「highScore」];' - 當然它將永遠不會相同;你很幸運它沒有墜毀。 – holex