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

Posted

技术标签:

【中文标题】如何从自定义模型对象数组中获取特定键的值【英文标题】:How to get values of a specific key from an array of custom model objects 【发布时间】:2013-09-06 10:55:42 【问题描述】:

我有一个自定义对象数组,其中包含一个自定义对象地址,其属性为街道、区域、州、国家。

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

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

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

有没有其他方法可以使用谓词或其他方式来获取地址项的所有区域,而不需要遍历地址数组(如上)。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

只要对象是符合 KVC 的 area 属性,那么简单:

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

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

[NSArray valueForKey:]:

返回一个包含调用 valueForKey 的结果的数组:使用 键在数组的每个对象上。

【讨论】:

NSArray *areas = [[addresses valueForKey:@"area"] mutableCopy];这是使用可变副本的方式吗?如有错误请指正

以上是关于如何从自定义模型对象数组中获取特定键的值的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象中特定键的值存储到数组中 - Vue

如何根据另一个对象数组的值获取一个对象数组键的值?

如何在不使用 for 循环的情况下从 appsettings 文件中读取对象数组中特定键的值

如何从 Javascript 中的对象列表中获取键的值?

如何对对象中特定键的所有值求和?

如何从 PostgreSQL 中的 JSONB 数组中获取特定对象的值?