我正在尝试在我的 iPhone 应用程序中创建一个高分系统,允许我在高分保存文件中存储一个 long long int,因为我希望高分值大于普通整数。但我能找到的代码是这样的:
if (ScoreNumber > HighScore) {
HighScore = ScoreNumber;
[[NSUserDefaults standardUserDefaults] setInteger:HighScore forKey:@"HighScoreSaved"];
}
HighScoreSaved 不会正确保存,一旦 Score Number 达到大于 2,147,483,647 的值或 4 字节整数的最大整数值,HighScoreSaved 将保存一个完全不同的整数值。以下是我在 ViewController.h 中的数据类型:
int y, RandomPosition;
long long int ScoreNumber, HighScore;
BOOL Start;
只是重申并确保我尽可能清楚,我正在寻找一种方法来在 objective-c 中存储 long long int 高分值。任何输入将不胜感激,这个问题可能看起来很愚蠢,但这是我第一个使用 xcode 和 objective-c 的应用程序,所以任何事情都会很好。谢谢。
最佳答案
与其自己将分数分成两部分,不如将其值包装在 NSNumber
中,如下所示:
[[NSUserDefaults standardUserDefaults]
setObject:[NSNumber numberWithLongLong:HighScore]
forKey:@"HighScoreSaved"
];
检索高分如下:
HighScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScoreSaved"] longLongValue];
关于ios - NSUserDefaults standardUserDefaults setInteger for a long long int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224761/