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

时间:2015-11-27 15:13:20

标签: ios objective-c arrays

我对objective-c很陌生,我已经尝试过寻找可能的答案 - 而且我几乎没有运气。

我想要做的是存储多个名称和数字,并在需要时检索这些名称和数字。它主要用于存储分数。

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

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

3 个答案:

答案 0 :(得分:2)

NSDictionary似乎是一个好的开始,因为这比数组搜索效率更高。也许你被NSNumber != int困住了。 (NSNumbers是对象,没有基元。)检查the docs并查看它们是否对您有帮助。

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

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

答案 1 :(得分:1)

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

像这样简单的东西可行:

@interface Userinfo: NSObject

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

@end

答案 2 :(得分:0)

您可以存储此类数据

<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast-all</artifactId>
    <version>3.5</version>
</dependency>

您可以检索如下所述:

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];  
[dictionary setObject:@"player1" forKey:@"user_name"];
[dictionary setObject:@"10" forKey:@"user_score"];
[userList addObject:dictionary];

我认为这对你有用。