使用DynamicComposableModel并在调试器中编辑我的方法后,我的Pharo 6.1映像已达到以下状态:
Instance of SpecLayout did not understand #visibleSlots
和
Instance of SpecLayout did not understand #instVarNames
。由于这些错误,我无法“归档”我的代码。我什至无法浏览我的课程,该课程实际上称为“ UIVidya”,应该由
定义ComposableModel subclass: #UIVidya
instanceVariableNames: 'vidya listE editE tabmgr'
classVariableNames: ''
poolDictionaries: ''
category: 'vkVidya'!
。在损坏的图像中,UIVidya classLayout
返回 SpecLayout 。在正常情况下,UIVidya classLayout
返回 FixedLayout 。我没有故意进行此更改,甚至都不知道它是如何发生的。我可以在不放弃最后更改的情况下就地修复破碎的Pharo图像吗?
答案 0 :(得分:0)
您的图像看起来不完整。第二条错误消息表明您有一个SpecLayout
实例,其中应有一个class
(可能是SpecLayout
)。尝试定义方法
instVarNames
^self class instVarNames
visibleSlots
^self class visibleSlots
在SpecLayout
的实例侧按,以查看是否可以继续查找损坏的对象。您可以随时返回此处获取更多信息。解决问题后,请不要忘记删除新的伪造方法。
答案 1 :(得分:0)
通过在Playground中执行此操作,我得以恢复正常状态:
UIVidya layout: sdfgh
(与UIVidya layout: nil
相同)。感谢您的关注,真正帮助了我们积极使用系统浏览器和 Playground 比较损坏和未损坏的Pharo实例。现在,我可以“归档”我的代码了!
问题来自https://benjamin.vanryseghem.com/projects/spec/docs/dynamic/的过时教程,其中包括发送layout:
的代码。不要在现代Pharo中这样做!