1

キー値コーディングを使用してオブジェクトに値を設定しようとしています:

[engine setValue:[NSNumber numberWithInt:horsePower]
          forKey:@"horsePower"];

エラーの原因:

[<Slant6 0x7fbc61c15c40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key horsePower.

engineキー値のコーディングに準拠するには何をする必要がありますか?

4

2 に答える 2

4

engine所属するクラスがhorsePowerプロパティを実装していること、および/またはhorsePowerインスタンス変数を持っていること、および/またはメソッドを手動で実装setHorsePower:していることを確認してくださいhorsePower

horsePowerキーの値を設定しようとしているが、engineのクラスがキーを設定する方法を適切に実装していないため、エラーが発生していhorsePowerます。

于 2012-07-15T12:41:45.980 に答える
3

KVC を利用する方法はたくさんあります。おそらく最も簡単なのは、使用したいキーの名前を持つインスタンス変数をクラスに持つことです。つまり、次のようになります。

@interface Engine: NSObject {
    NSNumber *horsePower;
    // etc.
}
于 2012-07-15T12:43:04.187 に答える