我试图使用
保存高分 HighScore = [[NSUserDefaults standardUserDefaults]integerForKey:@"ScoreSaved"];
Intro3.text = [NSString stringWithFormat:@"HighScore: %i", HighScore];
它说:
"隐式转换失去整数精度,NSInterger(又名长) INT
-(void)EndGame
{
if (ScoreNumber > HighScore){
HighScore = ScoreNumber;
[[NSUserDefaults standardUserDefaults]setInteger:HighScore forKey:@"ScoreSaved"];
}
这是我的第一场比赛,我被困住了如何保存高分? 感谢您抽出宝贵时间阅读本文。
答案 0 :(得分:4)
您使用stringWithFormat
的错误说明符,但是如果您想同时支持32位和64位目标,则难以获得正确的说明符。它通常更容易使用%ld
并将值转换为long
:
Intro3.text = [NSString stringWithFormat:@"HighScore: %ld", (long)HighScore];
答案 1 :(得分:0)
您在字符串格式中使用了错误的格式说明符,导致HighScore
变量(NSInteger
)的不正确转换。
使用适用于%ld
类型的NSInteger
说明符:
Intro3.text = [NSString stringWithFormat:@"HighScore: %ld", HighScore];