如何从自定义模型对象数组中获取特定键的值

时间:2013-09-03 09:12:36

标签: iphone ios objective-c arrays model-view-controller

我有一个自定义对象数组,其中包含一个自定义对象地址,其中包含属性street,area,state,country。

我需要从该数组中获取所有区域的名称,所以我做了类似的事情。

NSMutableArray *areas = [[NSMutableArray alloc]init];
    for (Address *item in addresses) {
        [areas addObject:item.area];
    }

现在区域包含该区域的所有名称。

有没有其他方法可以通过地址数组(如上所述),使用谓词或其他方式来获取地址项的所有区域。

2 个答案:

答案 0 :(得分:26)

只要该对象与区域属性符合KVC,那么只需:

NSArray *areas = [addresses valueForKey:@"area"];

(如果您希望areas是可变的,根据您的代码,那么您需要在上述语句中使用mutableCopy

请参阅[NSArray valueForKey:]

  

返回一个数组,其中包含调用valueForKey:using的结果   键入每个数组的对象。

答案 1 :(得分:3)

另外我们使用mutableArrayValueForKey:方法来获取与键对应的值数组

NSMutableArray *areas = [addresses mutableArrayValueForKey:@"name"];