我想保存一个仅供本地使用的高分。一个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];
下次应用程序打开时,这些数据是否可用?
答案 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:将覆盖先前的值。