我有2个数组。 数组A arrayA [0]包含{a,b,c,d,e ...}和数组B arrayB [0]包含{a,b,c。 ..}。两个数组都是可变的,并且有很多对象。在NSMutableDictionary
中,对于数组A中的每个元素(作为键),应该存储整个数组B.
例如:
(键值)数组A [0]具有整数(对象值)数组B(0 ... 200)
(键值)数组A [1]具有整数(对象值)数组B(0 ... 200)
(键值)数组A [2]具有整数(对象值)数组B(0 ... 200)
我的代码:
for (int i=0; i<100; i++)
{
[someDictionary setObject:arrayB forKey:arrayA[i]];
}
这不起作用,我也尝试了这个:
[someDictionary initWithObjects:arrayB forKeys:arrayA[i]]
答案 0 :(得分:1)
您应该使用NSString
将密钥存储在键值对中。所以我建议
for (int i=0; i<100; i++) {
NSString *str=(NSString *)arrayA[i];
[someDictionary setObject:arrayB forKey:str];
}
答案 1 :(得分:0)
您的代码原则上看起来很好。显然固定为100个元素并不好,所以我写了
for (id key in self.arrayA)
[someDictionary setObject:self.arrayB forKey:key];
答案 2 :(得分:0)
尝试这个ansewer ..我不知道兄弟我是否理解你的问题是对还是错
试试我的代码......
NSMutableArray *tempA=[NSMutableArray array];
NSMutableArray *tempB=[NSMutableArray array];
for (int a=0; a<100; a++)
{
[tempA addObject:[NSString stringWithFormat:@"%d",a]];
}
NSMutableArray *dataArray=[NSMutableArray array];
NSMutableDictionary *dict;
for (int i=0; i<[tempA count]; i++)
{
for (int a=0; a<100; a++)
{
dict=[NSMutableDictionary dictionary];
NSString* localTemp=[NSString stringWithFormat:@"key-%@",[tempA objectAtIndex:i]];
[tempB addObject:[NSString stringWithFormat:@"%d",a]];
id object=[tempB objectAtIndex:a];
[dict setObject:object forKey:localTemp];
[dataArray addObject:dict];
}
}
NSLog(@"dictonarry is---->%@",dataArray);
答案 3 :(得分:-2)
NSArray *arrayA = [NSArray arrayWithObjects:@"1",@"2", nil];
NSArray *arrayB = [NSArray arrayWithObjects:@"3",@"4", nil];
NSMutableDictionary *temp = [[NSMutableDictionary alloc]init];
for(int i =0 ; i<[arrayA count];i++)
{
[temp setObject:arrayB forKey:[arrayA objectAtIndex:i]];
}