我现在第三次遇到这个问题,你们中的一些 Squeak 程序员可能从屏幕截图中识别得最好:
这是重现问题的示例代码:
d:=Dictionary new.
(1 to: 257) do: [:each|
d at: each put: each
].
f:=FileStream fileNamed: 'asdf.txt'.
d storeOn: f.
f reset.
d2:=Dictionary readFrom: f.
f close.
我知道它为什么会发生(编译器用于反序列化,它通过将整个文件放在一个方法中来实现)。
过去,我总是将代码更改为使用数据库或使用其他形式的序列化。但我想知道是否有某种方法可以修复 Squeak 以使其正常工作。