for(Attribute* attribute in appDelegate.attributeArray) {
attribute = [appDelegate.attributeArray objectAtIndex:z];
attri = attribute.zName;
int y = 0;
for(Row* r in appDelegate.elementsArray) {
r = [appDelegate.elementsArray objectAtIndex:y];
NSString *ele = r.language;
if([attri isEqualToString:ele]) {
NSLog(@"=================+++++++++++++++++%@ %@",attri, r.user);
[aaa insertObject:r atIndex:y]; //here i am adding the value to array
[dict setObject:aaa forKey:attri]; //here i am adding the array to dictionary
}
y++;
}
z++;
NSLog(@"============$$$$$$$$$$$$$$$$$$$$$$$++++++++++ %@",dict);
}
键在一个数组中,另一个数组中的值和值数组是对象格式。
我需要为单个键存储多个对象。 attributeArray
具有键值,elementsArray
具有该对象。例如,attributeArray可能具有值
" English, French, German..."
并且elementsArray可能具有对象值
"<Row: 0x4b29d40>, <Row: 0x4b497a0>, <Row: 0x4e38940>, <Row: 0x4b2a070>, <Row: 0x4b29ab0>, <Row: 0x4b178a0> "
在第一个值中,我需要存储两个对象,第二个键需要存储3个对象,第三个键需要在字典中存储最后两个对象。
答案 0 :(得分:6)
对于超简化,您可以使用以下代码:
NSArray *keys = ...;
NSArray *values = ...;
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjects: values forKeys: keys];
希望,这有帮助。
<强>更新强>
在字典中存储单个键的多个值,只需使用NSArray
/ NSMutableArray
作为对象:
NSArray *keys = ...;
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
for( id theKey in keys)
{
NSMutableArray *item = [NSMutableArray array];
[item addObject: ...];
[item addObject: ...];
...
[dict setObject: item forKey: theKey];
}
如果您从一开始就不知道密钥的所有值,并且需要逐个添加它们,则可以使用以下方法:
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
for( /*some cycling condition here */)
{
id keyToUse = ...;
id valueToAdd = ...;
id foundArray = [dict objectForKey: keyToUse];
if ( nil == foundArray )
{
foundArray = [NSMutableArray array];
[dict setObject: foundArray forKey: keyToUse];
}
[foundArray addObject: valueToAdd];
}
答案 1 :(得分:3)
对我而言,它看起来是设置一个数组(aaa),其中字符串(attri)作为键。
将数组设置为另一个数组的键作为对象。您可以使用以下appraoch执行此操作。
NSMutableDictionary *myDictionary = [NSMutableDictionary dictionaryWithCapacity:1];
NSArray *valueArray = [NSArray arrayWithObjects:@"v1", @"v2", nil];
NSArray *keyArray = [NSArray arrayWithObjects:@"k1",@"k2", nil];
[myDictionary setObject:valueArray forKey:keyArray];
NSLog(@"myDictionary: %@", myDictionary);
但是你应该检查你的代码,并提供一个更简要的解释,说明你想要实现什么,以及你如何采取相应的方法。
的问候,
尔斯兰