我使用相同的键动态填充NSMutableDictionary。但是这样做会替换原始键值。我需要的是附加而不是替换现有密钥。例如,我需要一个像
这样的结构 {
@"Key" : @"Value1",
@"Key" : @"Value2",
@"Key" : @"Value3"
}
我知道我可以将创建的每个NSDictionary添加到NSMutableArray但我的问题是因为我需要输入值为NSDictionary。
目前我有以下内容替换原始值
NSMutableDictionary *ripDictionary = [[NSMutableDictionary alloc] init];
for(NSString *ripId in recievedRips){
//SOME OTHER CODE
ripDictionary[@"rip"] = keysAndAttributes;
[data addObject:ripDictionary];
}
答案 0 :(得分:3)
字典中的键值对称为条目。每个条目包含一个表示键的对象和另一个作为键值的对象。 在字典中,密钥是唯一的。也就是说,单个字典中没有两个键相等(由isEqual确定)。
也许您可以修改代码以接受如下字典:
{
@"Key" : [
@"Value1",
@"Value2",
@"Value3"
]
}
答案 1 :(得分:1)
每个字典只能有一个唯一的密钥,因此如果您想要多个与之关联的值,那么您可以将这些值添加到与密钥关联的数组中。
if([aDictionary objectForKey:@"key"] != nil){
aDictionary[@"key"] = @[aDictionary[@"key"], bDictionary[@"key"]];
}else{
aDictionary[@"key"] = bDictionary[@"key"];
//OR make all aDictionary values array by default with a single value
//but you get the point
}