消息未理解现有方法

时间:2012-12-02 12:15:44

标签: exception smalltalk pharo method-declaration missingmethod

好的,就像这样:

receiver selectors

返回

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

但是

receiver expression

抛出MessageNotUnderstood

任何想法如何解决这个问题以及为什么会造成这种情况?

1 个答案:

答案 0 :(得分:4)

您可能正在将消息expression发送到类而不是该类的实例。

如果评估receiver selectors的结果为#(#expression #expression: #mondrianLabel #accept: #name),那么receiver很可能是一个类。消息#selectors在类Behavior上实现,并返回类的实例方法的选择器。换句话说:类(或其任何子类)的实例理解列出的消息。

因此,如果您评估receiver expression,那么您将收到消息不理解异常,因为消息#expression是在作为值的类的实例上定义的您的receiver变量。