这可能是一个基本问题,但我似乎找不到答案.

假设我有一个NSArray(carArray),里面有某种类型的对象(汽车).

有没有可能在不使用for循环迭代carArray的情况下,获得包含这些对象的属性( colored颜色 )的所有值的NSArray(colorArray)?(cfr.LINQ in.NET)

NSMutableArray *colorList = [[NSMutableArray alloc] initWithCapacity:0];

for (Car *car in carArray)
{
    [colorList addObject:car.color];
}

提前谢谢.

推荐答案

对假设你的目标是采用KVC/KVO protocol.您可以获得一系列属性,如:

NSArray *colorList = [carArray valueForKey:@"color"];

实际上,valueForKey:方法所做的是返回一个数组,其中包含对每个数组对象使用key调用valueForKey:的结果.(摘自苹果在NSArray上的文档)

Objective-c相关问答推荐

如何在情节提要中为视图控制器提供标识符?

NSBundle pathForResource 为 NULL

如何声明仅调试语句

如何将 CGPoint 添加到 NSMutableArray?

我应该打电话给 [super awakeFromNib] 吗?

是否可以将 NSInteger 转换为 NSNumber?

无法编译连接:错误是什么意思?

CABasicAnimation 无 HUGE_VALF 无限重复?

如何判断 Cocoa 和 Objective-C 中是否存在文件夹?

如何知道 NSAssert 在发布版本中是否被禁用?

CoreData 关系故障?

更改后退导航栏按钮的字体

设置数据后调整 UICollectionView 单元格的大小

Lipo错误!!无法打开输入文件

iOS6:supportedInterfaceOrientations 不起作用(被调用但界面仍然旋转)

IOHIDFamily 的神秘控制台错误

iOS 11 large-title导航栏不折叠

Xcode 7 警告:目标文件是为比链接更新的 iOS 版本构建的

iPhone:如何确定线程是否是主线程?

performFetchWithCompletionHandler 永远不会被解雇