使用objectForKey从NSArray的NSDictionary中获取NSarray

时间:2013-09-04 11:48:11

标签: iphone ios objective-c nsarray nsdictionary

我有一个NSArray,其中包含n个NSDictionary sampleArray =

 (
            {
            0 = 0;
            1 = 0;
        },
            {
            0 = 86400;
            1 = 2;
        },
            {
            0 = 172800;
            1 = 4;
        },
            {
            0 = 259200;
            1 = 5;
        }

    )

现在我需要为objectForKey 0 [sampleArray objectForKey:[NSNumber numberWithInt:0]]获取NSArray,我的结果NSArray应该像 (0,86400,172800,259200)但我无法获取结果并且应用程序崩溃。

通常对于NSDictionary,如果使用NSString valueForKey设置键值,则上述操作成功执行但如果使用NSNumber objectForKey之类的对象设置键值,则无法执行操作。

请帮助我找到解决方案,任何建议将不胜感激!

4 个答案:

答案 0 :(得分:3)

这不起作用 - 对不起:我没有看到你没有把弦作为键+我不知道KVC只适用于字符串

我留下了


您正在寻找的是

NSArray *zeros = [mainArray valueForKey:@"0"];

从数组

中的每个字典得到“0”

答案 1 :(得分:3)

如果你的密钥是NSNumber个对象,那么这是一种非常直接的方式:

NSMutableArray *result = [[NSMutableArray alloc] init];
for (NSDictionary *d in a) {
    if (d[@0]) {
        [result addObject:d[@0]];
    }
}

答案 2 :(得分:0)

你所做的是

  NSMutableArray *arrResult = [[NSMutableArray alloc]init];
 for(int i=0;i<[sampleArray count];i++)
  {
    NSString *strValue = [[sampleArray objectAtIndex:i] valueforkey:@"0"];

   [ arrResult addobject:strValue];
 }

让我知道它是否有效!!!!

快乐的编码!!!!!

答案 3 :(得分:0)

在这里你可以尝试NSArray * tempArray

for (NSDictionary *list in tempArray)
{
    [firstArray addObject:[list objectForKey:@"0"];
    [secondArray addObject:[list objectForKey:@"1"];
}