gmo*_*242 3 objective-c nsuserdefaults ios long-integer
我正在尝试在我的iPhone应用程序中创建一个高分系统,允许我在高分保存文件中存储一个很长的int,因为我期望高分值大于正常整数.但是我在代码方面找到的就是:
if (ScoreNumber > HighScore) {
HighScore = ScoreNumber;
[[NSUserDefaults standardUserDefaults] setInteger:HighScore forKey:@"HighScoreSaved"];
}
Run Code Online (Sandbox Code Playgroud)
HighScoreSaved将无法正确保存,一旦得分数达到大于2,147,483,647的值或4字节整数的最大整数值,HighScoreSaved将保存完全不同的整数值.以下是我在ViewController.h中的数据类型:
int y, RandomPosition;
long long int ScoreNumber, HighScore;
BOOL Start;
Run Code Online (Sandbox Code Playgroud)
只是为了重申并确保我尽可能清楚,我正在寻找一种在objective-c中存储长期int高分值的方法.任何输入都会非常感激,这个问题可能看起来很愚蠢,但这是我第一个使用xcode和objective-c的应用程序,所以一切都会好的.谢谢.
不是将分数分成两部分,而是将其值包含在内NSNumber,如下所示:
[[NSUserDefaults standardUserDefaults]
setObject:[NSNumber numberWithLongLong:HighScore]
forKey:@"HighScoreSaved"
];
Run Code Online (Sandbox Code Playgroud)
检索高分如下:
HighScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"HighScoreSaved"] longLongValue];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1901 次 |
| 最近记录: |