Exception 现有方法无法理解消息

Exception 现有方法无法理解消息,exception,smalltalk,pharo,method-declaration,missingmethod,Exception,Smalltalk,Pharo,Method Declaration,Missingmethod,好的,是这样的: receiver selectors 返回 #(#expression #expression: #mondrianLabel #accept: #name) 但是 抛出消息NotUnderstanding 任何IDE如何修复此问题以及导致此问题的原因?您可能正在向类而不是该类的实例发送消息expression 如果对接收器选择器的求值结果为#(#表达式#表达式:#蒙德里安标签#接受:#名称),则接收器很可能是一个类。消息#选择器在类行为上实现,并返回类的实例方法的选择器。

好的,是这样的:

receiver selectors
返回

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

抛出
消息NotUnderstanding


任何IDE如何修复此问题以及导致此问题的原因?

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

如果对
接收器选择器的求值结果为
#(#表达式#表达式:#蒙德里安标签#接受:#名称)
,则
接收器
很可能是一个类。消息
#选择器
在类
行为
上实现,并返回类的实例方法的选择器。换句话说:类的实例(或其任何子类)理解列出的消息


因此,如果您计算
接收器表达式
,然后,您将收到一条消息未被理解异常,因为消息
表达式
是在类的实例上定义的,该类是
接收器
变量的值。

您可能将消息
表达式
发送到一个类,而不是该类的实例

如果对
接收器选择器的求值结果为
#(#表达式#表达式:#蒙德里安标签#接受:#名称)
,则
接收器
很可能是一个类。消息
#选择器
在类
行为
上实现,并返回类的实例方法的选择器。换句话说:类的实例(或其任何子类)理解列出的消息


因此,如果您计算
接收器表达式
,然后您将得到一个message not Understanding异常,因为message
#表达式
是在类的实例上定义的,该类是您的
receiver
变量的值。

我认为您最好通过将
语句
更改为
receiver
来澄清您的问题。这是一个更合适的命名。我认为您最好通过将
语句
更改为
接收者
来澄清您的问题。这是一个更合适的命名。谢谢。我自己在发帖5分钟后就想出来了,但在此之前我花了大约半个小时来调查……谢谢。我自己在发帖5分钟后就想出来了,但在此之前我花了大约半个小时调查…
receiver expression