HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 从现有的NSArray创建新的NSArray的标准惯例是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个NS元素的NSArray,长度为10个元素.我想创建第二个NSArray,其中包含每个字典上单个键的值.我能想到的最好方法是:
NSMutableArray *nameArray = [[NSMutableArray alloc] initWithCapacity:[array count]];
    for (NSDictionary *p in array) {
        [nameArray addObject:[p objectForKey:@"name"]];
    }
    self.my_new_array = array;
    [array release];
    [nameArray release];
}

但理论上,我应该能够不使用可变数组并将计数器与[nameArray addObjectATindex:count]结合使用,因为新列表应该与旧列表完全一样长.请注意,我不是要尝试过滤原始数组的子集,而是创建一个具有完全相同数量的元素的新数组,只需要从数组中每个元素的某个任意属性中挖掘出来的值.

在python中,可以像这样解决这个问题:

new_list = [p['name'] for p in old_list]

或者如果你是一个受虐狂,像这样:

new_list = map(lambda p: p['name'],old_list)

在objective-c中必须稍微明确一点,这让我想知道是否有一种公认的处理这些情况的常用方法.

解决方法

在这个特殊情况下,Cocoa在简洁中不甘示弱:)
NSArray *newArray = [array valueForKey:@"name"];

从NSArray文档:

大佬总结

以上是大佬教程为你收集整理的ios – 从现有的NSArray创建新的NSArray的标准惯例是什么?全部内容,希望文章能够帮你解决ios – 从现有的NSArray创建新的NSArray的标准惯例是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。