Ios 在数组(?)中存储多个名称和数字,需要时检索和编辑

Ios 在数组(?)中存储多个名称和数字,需要时检索和编辑,ios,objective-c,arrays,Ios,Objective C,Arrays,我对objective-c非常陌生,我试着四处寻找可能的答案,但我几乎没有运气 我想做的是存储多个名称和数字,并在需要时检索它们。它基本上是用来存储分数的 我尝试使用NSDictionary,其中包含键和对象,其中键是名称,对象是分数。但是,我不确定如何检索该数字并在其上添加内容,因为我收到了不兼容的指针警告,并且应用程序中断 是否有更好的方法来存储用户详细信息和分数,并在需要时检索和更新它们?创建可变字典的可变数组或自定义UserInfo对象的可变数组 像这样简单的方法会奏效: @interf

我对objective-c非常陌生,我试着四处寻找可能的答案,但我几乎没有运气

我想做的是存储多个名称和数字,并在需要时检索它们。它基本上是用来存储分数的

我尝试使用NSDictionary,其中包含键和对象,其中键是名称,对象是分数。但是,我不确定如何检索该数字并在其上添加内容,因为我收到了不兼容的指针警告,并且应用程序中断


是否有更好的方法来存储用户详细信息和分数,并在需要时检索和更新它们?

创建可变字典的可变数组或自定义UserInfo对象的可变数组

像这样简单的方法会奏效:

@interface Userinfo: NSObject

@property (nonatomic, strong) NSString *name
@property (nonatomic, assign) int score

@end

NSDictionary
似乎是一个不错的开始,因为它比数组搜索效率更高。也许你被
NSNumber!=int
。(NSNumbers是对象,不是原语。)检查并查看是否有帮助

一个简单的例子,假设
dict
实际上是一个
NSMutableDictionary
, 设置新值时,请注意
@

int currentPoints = [[dict objectForKey:@"name"] intValue];
int newPoints = currentPoints + 5;
[dict setObject:@(newPoints) forKey:@"name"];

您可以像这样存储数据

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];  
[dictionary setObject:@"player1" forKey:@"user_name"];
[dictionary setObject:@"10" forKey:@"user_score"];
[userList addObject:dictionary];
您可以按如下所述检索:

NSDictionary *dictionary = [[NSDictionary alloc] initWithDictionary:[userList objectAtIndex:0]];
lblName.text = [dictionary valueForKey:@"user_name"];
lblScore.text = [dictionary valueForKey:@"user_score"];

我认为这对您很有用。

您不能创建一个具有2个属性(user和score)的类UserScore并创建一个UserScore数组吗谢谢。设置新值时,我缺少@,这是在代码中创建断点。