-1

我有一个NSArray包含 n 个NSDictionarysampleArray =

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

    )

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

通常对于 NSDictionary,如果使用NSString valueForKey上述操作设置键值会成功执行,但如果使用像 NSNumber 这样的对象设置键值,objectForKey我将无法执行操作。

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

4

4 回答 4

3

NSNumber如果您的键是对象,这是一种非常直接的方法:

NSMutableArray *result = [[NSMutableArray alloc] init];
for (NSDictionary *d in a) {
    if (d[@0]) {
        [result addObject:d[@0]];
    }
}
于 2013-09-04T12:12:43.933 回答
3

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

我离开它虽然


你要找的是

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

它从数组中的每个字典中获取“0”

于 2013-09-04T11:53:28.870 回答
0

你所要做的是

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

   [ arrResult addobject:strValue];
 }

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

编码快乐!!!!

于 2013-09-04T11:53:20.673 回答
0

在这里你可以试试 NSArray *tempArray

for (NSDictionary *list in tempArray)
{
    [firstArray addObject:[list objectForKey:@"0"];
    [secondArray addObject:[list objectForKey:@"1"];
}
于 2013-09-04T11:54:13.367 回答