在 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 http://book.seaside.st/book/advanced/persistency/image-based-persistency
这一直运行良好,而且我的原型应用程序不必使用数据库真是太好了。
然而,问题是:当我添加一个新的实例变量时person
to Task
来自 ReferenceStream 的负载中断:
Object subclass: #Task
instanceVariableNames: 'title notes list project person dateNextAction dateCreated dateCompleted importance selected'
classVariableNames: 'Database'
poolDictionaries: ''
category: 'ToDo'
它似乎没有发现新变量,并将值加载到错误的插槽中,因此 person 取了值dateNextAction
, dateNextAction
takes dateCreated
等等。
我怎样才能阻止这种情况发生?
我通过将新变量放在列表末尾来使其工作,但我想按类型对变量进行分组。
ReferenceStream 不再受支持,并已在 Pharo 2.0 中删除。你应该使用 Fuel,它写得很好,有据可查,经过充分测试,而且速度非常快。http://rmod.lille.inria.fr/web/pier/software/Fuel http://rmod.lille.inria.fr/web/pier/software/Fuel
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)