1

在这个SO post中,选择的答案使用下面的语法以这种方式从乘客列表中获取frequentFlyerNumbers 列表。

NSArray *frequentFlyerNumbers = someFlight.passengers.frequentFlyerNumbers;

鉴于乘客是一个数组并且编译器无法推断进入数组的类型,这怎么可能?

实施乘客时出现以下错误。

在“NSMutableArray *”类型的对象上找不到属性“frequentFlyerNumbers”

4

1 回答 1

2

你引用的答案写得不好。那里提供的代码将不起作用。

纯代码中的点语法只是访问器的简写:someFlight.passengersmeans [someFlight passengers],从上下文来看,它似乎返回一个 NSMutableArray。NSMutableArray 当然本身没有frequentFlyerNumbers 属性。

要获得您想要的效果,请执行以下操作:

NSArray *frequentFlyerNumbers = [someFlight valueForKeyPath:@"passengers.frequentFlyerNumbers"];

这将起作用,并返回一个frequentFlyerNumbers 数组。当键路径上有一个数组或集合时,它会将后续路径“投影”到该数组或集合的所有成员中,从而产生一个数组或一组结果。

于 2013-11-16T03:32:34.117 回答