我正在开发一款Pong游戏来倾斜一些iPhone编程。
我有一个NSString * playerName和int playerScore。
我在比赛结束时得到这个。
现在我需要一种在用户设备上存储高分的方法。 但是有一些警告。
如果它是前10名的高分,我只会费心去存储分数。 如果用户的名字已经在列表中并且分数值得添加(例如> 10分),则更新分数并按分数对列表进行处理。
我来自C ++世界。
在C ++中,我会使用一个简单的文件来解析,在内存中工作,然后重写文件。
我想知道的是,这应该如何在Obj-C中完成。有没有一个类或什么使这类任务简单方便?
由于
答案 0 :(得分:1)
只需使用NSArray
个NSDictionary
个字典,其中字典包含您的分数(NSNumber
s)和名称。然后,您可以使用initWithContentsOfFile:
和writeToFile:atomically:
直接读取并将其写入磁盘(作为属性列表)。
答案 1 :(得分:0)
试试这个
创建一个用于存储用户分数的NSMutableArray
。
每次游戏结束时,都会在NSMutableArray
中找到具有10个最高值的分数。
之后使用PlayerName
HighestScores
和NSUserDefaults
NSUserDefaults
将允许您将对象保存在用户的设备中
NSString *PlayerName;
int PlayerScore;
//SAVING
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:PlayerName forKey:@"name"];
// saving an NSInteger
[prefs setInteger:PlayerScore forKey:@"score"];
//GETTING
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"name"];
// getting an NSInteger
int myInt = [prefs integerForKey:@"score"];
这只是我认为会有所帮助的一些指南:)