Smalltalk ReferenceStream 有新实例变量的问题?

标签 smalltalk pharo

在 Pharo Smalltalk 中,我使用 ReferenceStream 来序列化对象列表——这是我正在序列化的对象的类定义:

Object subclass: #Task
instanceVariableNames: 'title notes list project dateNextAction dateCreated dateCompleted importance selected'
classVariableNames: 'Database'
poolDictionaries: ''
category: 'ToDo'

我正在使用 SMFileDatabase这里描述的方法:
http://book.seaside.st/book/advanced/persistency/image-based-persistency

这一直运作良好,并且不必为我的原型(prototype)应用程序使用数据库真是太好了。

然而,问题是:当我添加一个新的实例变量 personTask ReferenceStream 的负载中断:
Object subclass: #Task
instanceVariableNames: 'title notes list project person dateNextAction dateCreated dateCompleted importance selected'
classVariableNames: 'Database'
poolDictionaries: ''
category: 'ToDo'

似乎没有发现新变量,并将值加载到错误的插槽中,所以人取 dateNextAction 的值, dateNextAction需要dateCreated等等。

我怎样才能阻止这种情况发生?

我通过将新变量放在列表末尾来使其工作,但我想按类型对变量进行分组。

最佳答案

ReferenceStream 不再受支持,在 Pharo 2.0 中已被删除。您应该使用编写良好、文档完善、测试良好且速度非常快的 Fuel。 http://rmod.lille.inria.fr/web/pier/software/Fuel

关于Smalltalk ReferenceStream 有新实例变量的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740734/

相关文章:

smalltalk - smalltalk中循环内的条件

smalltalk - Pharo:自定义智能角色

exception - 现有方法的消息无法理解

pharo - Pharo Smalltalk 中如何实现二进制消息的优先级?

tokenize - Smalltalk,换行符

smalltalk - Pharo:菜单错误

ios - 我现在可以对要通过商店分发的 iOS 应用程序使用 JIT 吗?

oop - 从 smalltalk (squeak) 中的字符串中提取子字符串

smalltalk 燃料输出 MULTIPLE 个对象

Smalltalk 中的树实现