在这个SO post中,选择的答案使用下面的语法以这种方式从乘客列表中获取frequentFlyerNumbers 列表。
NSArray *frequentFlyerNumbers = someFlight.passengers.frequentFlyerNumbers;
鉴于乘客是一个数组并且编译器无法推断进入数组的类型,这怎么可能?
实施乘客时出现以下错误。
在“NSMutableArray *”类型的对象上找不到属性“frequentFlyerNumbers”
在这个SO post中,选择的答案使用下面的语法以这种方式从乘客列表中获取frequentFlyerNumbers 列表。
NSArray *frequentFlyerNumbers = someFlight.passengers.frequentFlyerNumbers;
鉴于乘客是一个数组并且编译器无法推断进入数组的类型,这怎么可能?
实施乘客时出现以下错误。
在“NSMutableArray *”类型的对象上找不到属性“frequentFlyerNumbers”
你引用的答案写得不好。那里提供的代码将不起作用。
纯代码中的点语法只是访问器的简写:someFlight.passengers
means [someFlight passengers]
,从上下文来看,它似乎返回一个 NSMutableArray。NSMutableArray 当然本身没有frequentFlyerNumbers 属性。
要获得您想要的效果,请执行以下操作:
NSArray *frequentFlyerNumbers = [someFlight valueForKeyPath:@"passengers.frequentFlyerNumbers"];
这将起作用,并返回一个frequentFlyerNumbers 数组。当键路径上有一个数组或集合时,它会将后续路径“投影”到该数组或集合的所有成员中,从而产生一个数组或一组结果。