Petit souci de design avec Core Data
Salut à tous, je me confronte à un petit problème et je ne vois pas comment le résoudre. J'utilise Core Data dans mon application. Pour faire simple, j'ai isolé une partie de mon modèle de données:
Une collection est composée d'articles, et un article peut être présent dans plusieurs collections. Ce que je voudrais, c'est pouvoir avoir un attribut "display_order" pour chaque article en fonction da la collection ou il se situe. Le même article peut donc être dans une collection A avec un display order de 1 et dans une collection B avec un display order de 15. Je suis sûr qu'une solution simple existe, mais là , je ne vois pas !
Merci à vous.
Une collection est composée d'articles, et un article peut être présent dans plusieurs collections. Ce que je voudrais, c'est pouvoir avoir un attribut "display_order" pour chaque article en fonction da la collection ou il se situe. Le même article peut donc être dans une collection A avec un display order de 1 et dans une collection B avec un display order de 15. Je suis sûr qu'une solution simple existe, mais là , je ne vois pas !
Merci à vous.
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'avoue ne pas bien savoir non plus.
Une solution plus élégante mais plus complexe consisterait à dériver NSManagedObject pour la collection, et stocker l'ordre des articles dans un attribut NSData.
Il y a juste une case "ordered" à cocher.
Bonjour,
Tel que ton modèle est conçu, tu ne peux effectivement rien faire. Il faut passer par le "joint" décrit par la doc.
@jpimbert : pourquoi un attribut NSData? "Transformable" fonctionne pour une NSArray, ainsi que pour NSAttributedString, NSImage, NSSound... mais je n'ai pas trouvé de doc à ce sujet. Pour moi ça a juste été une bonne surprise.
@FKDEV: je n'ai jamais utilisé de NSOrderedSet (qui ne dérive pas de NSSet, d'alleurs). C'est bien?
La solution aujourd'hui c'est les relations ordonnées, et ça marche plutôt bien.
Et le content du contrôleur, on le met à quoi? Content Set? Content Array? As-tu les références WWDC par hasard?
Oups, j'oubliais... on est sur iOS, pas de bindings donc... Laissez tomber.
Pour répondre quand même à la question, je me suis fais un NSValueTransformer qui adapte le NSOrderedSet en NSArray pour que ça reste compatible avec les bindings.