Sauvegarde d'énumération

Salut la communauté !
Je suis en train de bosser sur une petite application perso de liste de courses en ce moment, avec quelques petites fonctionnalités de génération automatique de liste, d’affichage de liste habituelles, etc…
J’ai déja pas mal avancé sur l’intefrace graphique, le problème viens dans la persistance voire la sauvegarde des données.
En effet, j’ai une énumération de Catégories, qui me permet de déterminer facilement à quelle catégorie appartient un produit, le problème c’est que j’aimerais aussi sauvegarder cette catégorie, et je n’ai trouver aucune solution pour le moment, que ce soit avec Realm, CoreData ou encore UserDefaults !
Auriez-vous des idées pour ne pas avoir à changer mon modèle de Data.
Merci de votre aide !

PS : Est-ce qu’on peut créer une catégorie que l’on ajoute à l’enumération depuis l’application ? C’est à dire que l’utilisateur lui-même crée sa propre catégorie ?

Niet ! Impossible !
Je repasse ce soir sur le forum pour t’expliquer une manière alternative de régler le problème.

1 J'aime

Si je devais traiter un problème similaire, je n’utiliserais pas une énumération pour les catégories, mais des clés d’identification stockées dans un dictionnaire.

Par exemple, on peut imaginer un système simple, avec une clé numérique indexant une catégorie.

Le dictionnaire :

1:“Epices”
2:“Farines”
3:“Boulangerie”
4:“Boucherie”
5:“Chaussures”

Le dictionnaire est stocké dans le mécanisme de persistance de l’application, tu peux accéder aux catégories à n’importe quel moment.

Si l’utilisateur a besoin d’avoir une catégorie “Articles de Sport”, tu comptes le nb de clé dans le dictionnaire (5), et tu ajoutes 1 au résultat (5 + 1 = 6). Il faut ensuite ajouter une nouvelle clé (6:“Articles de Sport”) au dictionnaire, puis SAUVER LE NOUVEAU DICTIONNAIRE dans le système de persistance, et c’est bon …

Ce n’est pas plus compliqué d’utiliser une valeur (une clé numérique) pour mémoriser la catégorie d’un objet, qu’une énumération non-évolutive.


EDIT : si l’utilisation d’une clé purement numérique te perturbe un peu, à cause de son coté technologie des années 80, tu peux aussi générer des clés alphanumériques du type :

“CATEGORIE_1”:“Epices”
“CATEGORIE_2”:“Farines”

Et générer des clés à la demande, du type :

“CATEGORIE_6”:“Articles de Sports”.

C’est propre, lisible et extrêmement rapide, les dictionnaires d’iOS étant très efficaces, aussi bien avec les clés numériques que les clés alphanumériques.

Par contre, cela prend un peu plus de place en mémoire, les chaînes étant plus gourmandes qu’un simple nombre. Mais bon, à moins de vouloir gérer des dizaines de milliers d’objets dans ta liste de course, cela n’est pas gênant.

De nombreux développeurs utilisent une syntaxe simplifiée : “KEY1”, “KEY2”, etc …

1 J'aime