Pharo 状态损坏,如何保存我的代码?
Pharo state corrupt, how to save my code?
使用 DynamicComposableModel 并在调试器中编辑我的方法后,我的 Pharo 6.1 图像达到了这个状态:
Instance of SpecLayout did not understand #visibleSlots
和
Instance of SpecLayout did not understand #instVarNames
。由于这些错误,我无法 "File Out" 我的代码。我什至无法浏览我的 class,它实际上被称为 "UIVidya",应该由
定义
ComposableModel subclass: #UIVidya
instanceVariableNames: 'vidya listE editE tabmgr'
classVariableNames: ''
poolDictionaries: ''
category: 'vkVidya'!
。在损坏的图像中,UIVidya classLayout
returns SpecLayout。在健康的图像中,UIVidya classLayout
returns FixedLayout。我不是故意做这个改变的,甚至不知道它是怎么发生的。我可以在不放弃最后更改的情况下就地修复损坏的 Pharo 图像吗?
看起来你的图像没有损坏。第二条错误消息表明您有一个 SpecLayout
实例,其中需要 class
(大概是 SpecLayout
)。尝试定义方法
instVarNames
^self class instVarNames
visibleSlots
^self class visibleSlots
在 SpecLayout
的实例端,看看您是否可以继续前进并找到损坏的对象。您可以随时返回此处获取更多信息。修复问题后,不要忘记删除新的虚假方法。
通过在 Playground 中执行此操作,我能够恢复正常:
UIVidya layout: sdfgh
(与 UIVidya layout: nil
相同)。感谢您的关注,真正有用的是积极使用 System Browser 和 Playground 来比较损坏和未损坏的 Pharo 实例。现在我可以 "File Out" 我的代码了!
编辑:
问题来自 https://benjamin.vanryseghem.com/projects/spec/docs/dynamic/ 的过时教程,其中包含发送 layout:
的代码。不要在现代 Pharo 中这样做!
使用 DynamicComposableModel 并在调试器中编辑我的方法后,我的 Pharo 6.1 图像达到了这个状态:
Instance of SpecLayout did not understand #visibleSlots
和
Instance of SpecLayout did not understand #instVarNames
。由于这些错误,我无法 "File Out" 我的代码。我什至无法浏览我的 class,它实际上被称为 "UIVidya",应该由
定义ComposableModel subclass: #UIVidya
instanceVariableNames: 'vidya listE editE tabmgr'
classVariableNames: ''
poolDictionaries: ''
category: 'vkVidya'!
。在损坏的图像中,UIVidya classLayout
returns SpecLayout。在健康的图像中,UIVidya classLayout
returns FixedLayout。我不是故意做这个改变的,甚至不知道它是怎么发生的。我可以在不放弃最后更改的情况下就地修复损坏的 Pharo 图像吗?
看起来你的图像没有损坏。第二条错误消息表明您有一个 SpecLayout
实例,其中需要 class
(大概是 SpecLayout
)。尝试定义方法
instVarNames
^self class instVarNames
visibleSlots
^self class visibleSlots
在 SpecLayout
的实例端,看看您是否可以继续前进并找到损坏的对象。您可以随时返回此处获取更多信息。修复问题后,不要忘记删除新的虚假方法。
通过在 Playground 中执行此操作,我能够恢复正常:
UIVidya layout: sdfgh
(与 UIVidya layout: nil
相同)。感谢您的关注,真正有用的是积极使用 System Browser 和 Playground 来比较损坏和未损坏的 Pharo 实例。现在我可以 "File Out" 我的代码了!
编辑:
问题来自 https://benjamin.vanryseghem.com/projects/spec/docs/dynamic/ 的过时教程,其中包含发送 layout:
的代码。不要在现代 Pharo 中这样做!