2012-07-15 49 views
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鍵值編碼兼容?

+0

現在在哪裏我離開我的水晶球... – dreamlax 2012-07-15 12:39:03

+0

除非你告訴我們班級的引擎對象中,有沒有太多我們可以做些什麼來幫助你。 – 2012-07-15 12:41:42

+0

@ThorstenKarrer雖然一般來說這是一個很好的建議新手發佈他們的實際代碼,在這裏*不需要*。 – 2012-07-15 12:44:25

回答

4

確保任何類engine屬於實現horsePower財產,和/或具有horsePower實例變量,和/或手動實現setHorsePower:horsePower方法。

您正在嘗試設置horsePower鍵的值,但engine的類沒有正確實現設置horsePower鍵的方法。

+0

沒必要,請參閱我的回答。 – 2012-07-15 12:43:35

+0

感謝您的幫助。 – 2012-07-15 12:56:44

3

有很多利用KVC的bunch of approaches - 也許最簡單的是在你的班級中只需要一個實例變量和你想要使用的密鑰的名字i。 Ë:

@interface Engine: NSObject { 
    NSNumber *horsePower; 
    // etc. 
} 
+1

謝謝你的幫助。這意味着很多 – 2012-07-15 12:56:16

+0

@FOCUSHUANG沒問題,我很樂意幫忙。下次請確保你發佈了一些代碼,這大大幫助他人回答你的問題。 – 2012-07-15 12:59:23

+0

您應該鏈接到KVC文檔,該文檔解釋了使您的課程符合KVC標準的所有方法。 – 2012-07-15 13:28:45

相關問題