2

わかりましたので、次のようになります。

receiver selectors

戻り値

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

しかし

receiver expression

投げMessageNotUnderstoodます。

これを修正する方法と、これが発生する理由はありますか?

4

1 に答える 1

4

expressionクラスのインスタンスではなく、クラスにメッセージを送信している可能性があります。

評価の結果が である場合、receiver selectorsそれ#(#expression #expression: #mondrianLabel #accept: #name)receiverおそらくクラスです。メッセージ#selectorsはクラスに実装され、クラスBehaviorのインスタンス メソッドのセレクターを返します。つまり、クラス (またはそのサブクラス) のインスタンスは、リストされたメッセージを理解します。

したがって、 を評価receiver expressionすると、メッセージが変数の値であるクラスのインスタンスで定義されているため、メッセージが理解されないという例外が発生します。#expressionreceiver

于 2012-12-02T12:43:20.290 に答える