iOS:在本地保存高分

时间:2012-03-29 14:09:07

标签: ios save

我想保存一个仅供本地使用的高分。一个int,它保持你的最高分,这样我就可以在得到一个新分数时对它进行测试。

你会推荐使用plist吗?

类似的东西:

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];

下次应用程序打开时,这些数据是否可用?

1 个答案:

答案 0 :(得分:5)

最快和最容易做的事情,恕我直言,将使用NSUserDefaults。您可以获得读取/写入plist的速度,但您无需为单个值创建一个全新的文件。设置高分的代码看起来像这样..

[[NSUserDefaults standardUserDefaults] setInteger:100 forKey:@"high_score"];
热潮,这就是你所需要的一切。然后,当您下次启动应用程序并想要检查该高分时,可能在 - (void)gameEnded方法中,或 - (void)viewDidLoad,您只需说

NSInteger lastHighScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"high_score"];

lastHighScore现在将是您先前保存的用户默认值中存储的值。如果密钥已存在,则使用setInteger:forKey:将覆盖先前的值。