簡體   English   中英

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

由於這些錯誤,我無法“歸檔”我的代碼。 我什至無法瀏覽我的課程,該課程實際上稱為“ UIVidya”,應通過以下方式定義

ComposableModel subclass: #UIVidya
    instanceVariableNames: 'vidya listE editE tabmgr'
    classVariableNames: ''
    poolDictionaries: ''
    category: 'vkVidya'!

在破碎的圖像中, UIVidya classLayout返回SpecLayout 在健康的圖像中, UIVidya classLayout返回FixedLayout 我沒有故意進行此更改,甚至都不知道它是如何發生的。 我可以在不放棄最近更改的情況下就地修復破碎的Pharo圖像嗎?

您的圖像看起來好像不完整。 第二條錯誤消息表明您有一個SpecLayout實例,其中SpecLayout一個class (可能是SpecLayout )。 嘗試定義方法

instVarNames
  ^self class instVarNames

visibleSlots
  ^self class visibleSlots

SpecLayout的實例端查看是否可以繼續查找損壞的對象。 您可以隨時返回此處獲取更多信息。 修復問題后,請不要忘記刪除新的偽造方法。

通過在Playground中執行以下操作,我得以恢復正常狀態:

UIVidya layout: sdfgh

(與UIVidya layout: nil相同UIVidya layout: nil )。 感謝您的關注,真正幫助了我們積極使用系統瀏覽器Playground比較損壞和未損壞的Pharo實例。 現在,我可以“歸檔”我的代碼了!

編輯:

問題來自https://benjamin.vanryseghem.com/projects/spec/docs/dynamic/上的過時教程,其中包含發送layout:代碼layout: 不要在現代Pharo中這樣做!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM