iOS:在本地保存高分
我想保存一个高分,仅供本地使用。一个整型,它保持你的最高分数,这样我就可以在新分数出现时对它进行测试 你会推荐使用plist吗 比如:iOS:在本地保存高分,ios,save,Ios,Save,我想保存一个高分,仅供本地使用。一个整型,它保持你的最高分数,这样我就可以在新分数出现时对它进行测试 你会推荐使用plist吗 比如: NSString *path = [[NSBundle mainBundle] bundlePath]; NSString *finalPath = [path stringByAppendingPathComponent:@"Info.plist"]; NSDictionary *plistData = [[NSDictionary dictionaryWit
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Info.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
versionLabel = [[UILabel alloc] initWithFrame:CGRectMake(100,100,60,25)]; // for example
versionLabel.backgroundColor = [UIColor clearColor];
versionLabel.textColor = [UIColor whiteColor];
versionLabel.font = [UIFont systemFontOfSize:10];
NSString *versionString = [NSString stringWithFormat:@"v%@", [plistData objectForKey:@"CFBundleVersion"]];
versionLabel.text = versionString;
[self.view addSubview:versionLabel];
下次打开应用程序时,这些数据是否可用?IMHO最快、最简单的方法是使用NSUserDefaults。您可以获得对plist的读/写速度,但不需要为单个值创建一个全新的文件。设置高分的代码如下所示
[[NSUserDefaults standardUserDefaults] setInteger:100 forKey:@"high_score"];
轰,这就是你所需要的。然后,当你下一次启动应用程序并想检查高分时,也许是-voidgameEnded方法,或者-voidviewDidLoad,你只需说
NSInteger lastHighScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"high_score"];
lastHighScore现在将是存储在用户默认值中的值,您以前保存过该值。如果密钥已经存在,使用setInteger:forKey:将覆盖上一个值。IMHO最快、最简单的方法是使用NSUserDefaults。您可以获得对plist的读/写速度,但不需要为单个值创建一个全新的文件。设置高分的代码如下所示
[[NSUserDefaults standardUserDefaults] setInteger:100 forKey:@"high_score"];
轰,这就是你所需要的。然后,当你下一次启动应用程序并想检查高分时,也许是-voidgameEnded方法,或者-voidviewDidLoad,你只需说
NSInteger lastHighScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"high_score"];
lastHighScore现在将是存储在用户默认值中的值,您以前保存过该值。如果密钥已经存在,则使用setInteger:forKey:将覆盖以前的值。这很好,但对于那些希望最终通过game center或ngmoco或其他方式将这些分数设置为全局分数的人来说,有一个警告:NSUserDefaults只是一个plist。对于一个手机被越狱的人来说,通过改变这些值来给自己打高分是极其微不足道的。这很好。我从来没有对GameCenter做过任何事情,也从来没有用一部坏掉的手机对黑客做过任何事情。谢谢你的洞察力!如果要立即将其写入磁盘,请不要忘记同步。或者,当您需要它时,它可能不存在[[NSUserDefaults standardUserDefaults]synchronize];这很有效,但对于那些希望最终通过游戏中心或ngmoco或其他方式将这些分数全球化的人来说,有一个警告:NSUserDefaults只是一个plist。对于一个手机被越狱的人来说,通过改变这些值来给自己打高分是极其微不足道的。这很好。我从来没有对GameCenter做过任何事情,也从来没有用一部坏掉的手机对黑客做过任何事情。谢谢你的洞察力!如果要立即将其写入磁盘,请不要忘记同步。或者,当您需要它时,它可能不存在[[NSUserDefaults standardUserDefaults]synchronize];