Сообщение не понято для существующего метода
Итак, это так:
receiver selectors
возвращается
#(#expression #expression: #mondrianLabel #accept: #name)
Но
receiver expression
бросает MessageNotUnderstood
,
Любые идеи, как это исправить и почему это может быть вызвано?
1 ответ
Вы, вероятно, отправляете сообщение expression
к классу вместо экземпляра этого класса.
Если результат оценки receiver selectors
является #(#expression #expression: #mondrianLabel #accept: #name)
затем receiver
это скорее всего класс. Сообщение #selectors
реализуется на классе Behavior
и возвращает селекторы методов экземпляра класса. Другими словами: экземпляры класса (или любого из его подклассов) понимают перечисленные сообщения.
Следовательно, если вы оцениваете receiver expression
, тогда вы получите сообщение непонятного исключения, потому что сообщение #expression
определяется на экземпляре класса, который является значением вашего receiver
переменная.