在我的应用程序中,我从server.i获取数据解析数据并添加到单个数组。这里我有2个阵列。
例如
数组A:@“1”,@“2”,@“3”,@“2”,@“3”,@“4”等。 数组B:@“A”,@“B”,@“C”,@“D”,@“E”,@“F”等。
现在我想创建一个字典,其中数组A为键,数组B为值。 我正在尝试像这样创建词典:
dataDict = [NSDictionary dictionaryWithObjects:B forKeys:A];
但它只为单个Key提供单个值。这里如何为单个密钥存储多个值。
答案 0 :(得分:4)
对于不同的键,它的工作原理。但我的问题是为单个密钥存储多个值。
您无法直接为单个密钥存储多个值 - 字典每个密钥只能有一个值。你可以做的是存储一个数组作为值。因此,您可以创建一个可变字典并一次添加一个键和值。将值设置为所有可变数组,并在设置之前检查给定键的现有值。如果找到一个,请将新值添加到数组中。
答案 1 :(得分:1)
试试这个,
假设dataDict
是NSMutableDictionary
并已初始化。
- (void)addValueInDataDict:(id)value forKey:(NSString *)key {
if ([dataDict objectForKey:key] != nil) {
//Already exist a value for the key
id object = [dataDict objectForKey:key];
NSMutableArray *objectArray;
if ([object isKindOfClass:[NSMutableArray class]]) {
objectArray = (NSMutableArray *)object;
} else {
NSMutableArray *objectArray = [[NSMutableArray alloc] init];
}
[objectArray addObject:value];
[dataDict setObject:objectArray forKey:key];
} else {
//No value for the key
[dataDict setObject:value forKey:key];
}
}