1

このSO 投稿では、選択された回答は以下の構文を使用して、この方法で乗客のリストからfrequentFlyerNumbersのリストを取得します。

NSArray *frequentFlyerNumbers = someFlight.passengers.frequentFlyerNumbers;

乗客が配列であり、コンパイラが配列に入る型を推測できない場合、これはどのように可能ですか?

乗客を実装するときに次のエラーが発生しました。

タイプ「NSMutableArray *」のオブジェクトにプロパティ「frequentFlyerNumbers」が見つかりません

4

1 に答える 1

2

あなたが引用した答えは不十分に書かれています。そこに示されているコードは機能しません。

平易なコードでのドット構文はアクセサの省略形です:コンテキストからsomeFlight.passengersNSMutableArray[someFlight passengers]を返すように見えます。NSMutableArray にはもちろん、frequentFlyerNumbers プロパティ自体はありません。

必要な効果を得るには、次のようにします。

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

これは機能し、frequentFlyerNumbers の配列を返します。キー パスに沿って配列またはセットがある場合、その配列またはセットのすべてのメンバーに後続のパスを「射影」し、結果の配列またはセットを生成します。

于 2013-11-16T03:32:34.117 に答える