存储键-值对的数据结构,可在Objective-C中修改值

时间:2019-05-31 09:17:55

标签: ios objective-c nsmutabledictionary

我想拥有一个数据结构,其中每个键都对应一个值(Int),该值可以修改,就像可以向其中添加一些值一样。

NSMutableDictionary可以工作吗?

如果是,那怎么办?

3 个答案:

答案 0 :(得分:0)

是的,您可以使用NSMutableDictionary修改值。但对于该值,应为NSNumber。我认为这样对您来说就可以了。

答案 1 :(得分:0)

您不能存储可可类型(例如NSMutableDictionary)的基本类型,需要将它们桥接到其NS类型(即NSNumber等)

NSNumber *val1= [NSNumber numberWithInt:0];
NSNumber *val2= [NSNumber numberWithInt:1];
NSNumber *val3= [NSNumber numberWithInt:2];

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict["yourKey"] = val1;
dict["yourKey1"] = val2;
dict["yourKey2"] = val3;

答案 2 :(得分:0)

您可以这样做:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:[NSNumber numberWithInt:42] forKey:@"key1"];

int myNumber = [[dict objectForKey:@"key1"] intValue];
myNumber = myNumber + 10;

dict[@"key1"] = [NSNumber numberWithInt:myNumber];
NSLog(@"%@", dict);

给定代码的输出为:

{
    key1 = 52;
}