从我之前的例子开始跟进
How to find which was the wrong message in a Message Not Understood message?
让我们说代码现在就是这个
Transcript explode implode andBecomeNuclear.
Pharo将在这种情况下发送3个MNU:1)爆炸2)内爆3)并成为核心
覆盖doesNotUnderstand:在这里没有用,因为我想要完整的消息链。这意味着我希望它不仅给我一条消息,而且给所有3条消息,直到它找到结束pharo命令的时间段。
我是怎么做到的?
答案 0 :(得分:4)
首先,Pharo不会发送3条消息。按照优先顺序,它将发送explode
,然后使用DNU停止,或将implode
发送给返回的对象。您可以做的是以一种将消息存储在队列中并返回self的方式定义DNU。我不知道如何在语句的最后检索所有链。最简单的方法是定义一些消息,如chain
,它将返回整个队列。