2012-12-02 20 views
1

好了,是這樣的:信息不被理解爲現有的方法

receiver selectors 

回報

#(#expression #expression: #mondrianLabel #accept: #name) 

receiver expression 

拋出MessageNotUnderstood

任何IDE如何解決這個問題,爲什麼這可能導致?

+1

我認爲你最好通過將'statement'改爲'receiver'來澄清你的問題。這是一個更合適的命名。 –

回答

4

您可能將消息expression發送給類而不是該類的實例。

如果評估receiver selectors的結果是#(#expression #expression: #mondrianLabel #accept: #name)那麼receiver很可能是一類。消息#selectors在類Behavior上實現,並返回該類的實例方法的選擇器。換句話說:類(或其任何子類)的實例理解列出的消息。

因此,如果您評估receiver expression,那麼你會得到不明白一個消息異常,因爲消息#expression上那是你receiver變量的值類的實例定義。

+0

謝謝。在發佈問題5分鐘後我已經知道了,但在此之前,我花了大約半個小時的時間來調查...... – Uko