如何在NSDictionary中为键和对象添加数组

时间:2014-09-18 09:45:43

标签: ios objective-c arrays xcode nsdictionary

我有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]]

4 个答案:

答案 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]];
    }