Ios NSUserDefaults standardUserDefaults synchronize给出错误的结果目标c
我想保存高分使用Ios NSUserDefaults standardUserDefaults synchronize给出错误的结果目标c,ios,objective-c,nsstring,nsuserdefaults,Ios,Objective C,Nsstring,Nsuserdefaults,我想保存高分使用 同步 在我的应用程序中,但我得到了一个乱七八糟的数字。这是我得到的: 游戏场景.m if (highScore <score) { highScore = score; NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; [prefs setInteger:highScore forKey:@"highScore"]; [[NSUserDefaults sta
同步
在我的应用程序中,但我得到了一个乱七八糟的数字。这是我得到的:游戏场景.m
if (highScore <score) {
highScore = score;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:highScore forKey:@"highScore"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
为什么我得到了错误的值以及如何解决此问题?您得到了错误的值,因为
rezult
是NSString
,您应该更改此值:
NSString *rezult =[prefs stringForKey:@"highScore"];
为此:
NSInteger rezult = [prefs integerForKey:@"highScore"];
试着不要每次都初始化另一个nsuserdefaults,只要使用 [[NSUserDefaults standardUserDefaults]设置值:姓氏。文本分叉:@“Nume”];写 [[NSUserDefaults standardUserDefaults]valueForKey:@“Name”]读取
并确保使用相同的对象类型
[prefs setInteger:highScore forKey:@“highScore”]代码>你写一个整数;然后将其作为字符串指针读回:NSString*rezult=[prefs stringForKey:@“highScore]”代码>-当然,它将永远不会是相同的;你很幸运它没有崩溃。
NSInteger rezult = [prefs integerForKey:@"highScore"];