ValueForKey:返回数组中的结果

时间:2013-08-01 10:22:57

标签: ios objective-c nsmutablearray nsarray nslog

我有一个如下所示的数组:

 {
    name = Size;
    "option_id" = 13;
    "product_option_id" = 380;
    required = 1;
    type = select;
}     

当我记录这样的输出时:

NSLog(@"productOptions %@",[self.singleProductOptionsArray valueForKey:@"name"]);

它在数组中输出结果,所以我把它放入一个字符串中:

 2013-08-01 11:10:33.116 vinylsdirect[210:907] productOptions (
 Size
)

我在其他数组中使用相同的代码,一切正常,所以我不知道发生了什么。我也试过像这样更改NSLog:

NSLog(@"productOptions %@",[[self.singleProductOptionsArray objectAtIndex:0] valueForKey:@"name"]); 

有没有人知道可能导致我的问题的原因是什么?

由于

2 个答案:

答案 0 :(得分:2)

我认为它是nsarray,包含nsdictionarys。迭代它。看看这是否有效?

for (NSDictionary *prod in self.singleProductOptionsArray)
{
    NSLog(@"Prod: %@", [prod valueForKey:@"name"]);
}

答案 1 :(得分:0)

valueForKey:上调用NSArray时,定义的返回值是一个数组,其中包含在每个数组对象上使用valueForKey:调用key的结果。所以你所看到的正是你所要求的。

准确检查您拥有的对象类型以及嵌套内容。