En Smalltalk Pharo J'utilise ReferenceStream à serialise une liste d'objets - voici la définition de la classe des objets que je suis sérialisation:Smalltalk ReferenceStream a des problèmes avec les nouvelles variables d'instance?
Object subclass: #Task
instanceVariableNames: 'title notes list project dateNextAction dateCreated dateCompleted importance selected'
classVariableNames: 'Database'
poolDictionaries: ''
category: 'ToDo'
J'utilise la méthode décrite ici SMFileDatabase
: http://book.seaside.st/book/advanced/persistency/image-based-persistency
Cela a bien fonctionné, et ça a été bien de ne pas avoir à utiliser une base de données pour mon application prototype.
Howevere, voici le problème: quand j'ajoute une nouvelle variable d'instance person
-Task
la charge de ReferenceStream casse:
Object subclass: #Task
instanceVariableNames: 'title notes list project person dateNextAction dateCreated dateCompleted importance selected'
classVariableNames: 'Database'
poolDictionaries: ''
category: 'ToDo'
Il semble ne pas repérer la nouvelle variable, et charger les valeurs dans les mauvaises fentes , donc personne prend la valeur de dateNextAction
, dateNextAction
prend dateCreated
et ainsi de suite.
Comment puis-je arrêter cela?
Je l'ai fait fonctionner en plaçant la nouvelle variable à la fin de la liste, mais je voudrais regrouper les variables par type.
... et vous pouvez également l'installer dans Pharo 1.4. Donc, c'est un gagnant-gagnant :) – EstebanLM
et il suffit de lire le code pour ReferenceStream pour savoir pourquoi vous voulez utiliser le carburant :) –