Core Data, Id (identificateur unique) entier et singleton
Que pensez-vous de la conception suivante pour gérer un id sur une entité CoreData ?
Je veux gérer un attribut id, de type int pour Entity1.
à‰videmment, je veux qu'il soit unique pour chaque instance de Entity1.
J'ai vu qu'il y a déjà un id géré par CoreData, mais je veux vraiment un entier, et pas trop moche (genre 1, 2, 3, etc.)
Comme on me l'a conseillé ici, j'ai aussi dans mon modèle une entité fourre-tout, que j'appelle MyGeneralData. D'ailleurs, MyGeneralData est, d'une certaine manière, un singleton CoreData : si j'existe déjà dans le store, on me récupère sinon on me crée.
Dans MyGeneralData, je crée un attribut maxIdForEntity1.
Puis, quand je crée je insert une nouvelle Entity1, je vais récupérer maxIdForEntity1 de l'instance de MyGeneralData (que j'incrémente) pour déterminer le id de ce nouvel objet.
Une autre méthode élégante serait de créer un dico qui matcherait le "CoreData id" sur un entier qui augmente et au fur et à mesure.
Réponses
Bonjour,
Dans ta solution il faudra aussi gérer la suppression d'un objet et la disparition de son ID.
Je te conseille plutôt d'utiliser @max sur l'ID de tes objets quand tu en insère un nouveau. Si tu a coché indexed dans le modèle pour l'ID de l'objet c'est très rapide.