Core Data et abstract entity

pixmanpixman Membre
Bonjour a tous,

Je suis actuellement en train d'explorer le framework CoreData, il est vrai qu'on gagne énormément de temps avec ce dernier !

J'en suis a mes premiers essai avec Core Data et j'ai quelques interrogations, notamment sur les entités abstraites.
J'ai pense avoir compris qu'il était possible de créer une entité abstraite qui serait hérité par plusieurs autres.

Exemple :

Dans mon appli je souhaite pouvoir créer une relation entre ma première entité ( exemple: entité "bibliotheque" ) et plusieurs autres entitées ( exemple : "video, musique, photo) qui  héritent toute d'une même entité abstraite ( exemple: "media").

l'application serai de pouvoir via un seul ArrayManager, afficher tous mes média dans un tableau, et accèder a leurs attribus spécifiques dans une vue dédiée.

l'ajout de nouveaux types de média serai ainsi simplfié.

PS: je ne code pas une appli de gestion de bibliothèque multimédia, c'est juste pour me faire comprendre.


Merci pour votre aide, et n' hésitez pas à  me demander si je ne suis pas assez clair.

Réponses

  • CéroceCéroce Membre, Modérateur
    04:32 modifié #2
    dans 1282913095:

    Je suis actuellement en train d'explorer le framework CoreData, il est vrai qu'on gagne énormément de temps avec ce dernier !

    Fais une appli complète avec et nous pourrons en reparler...
    Core Data, je n'en suis pas fan, mais nous en avons déjà  parlé sur ce forum.

    dans 1282913095:

    Merci pour votre aide, et n' hésitez pas à  me demander si je ne suis pas assez clair.

    Tu as bien compris le principe des entités abstraites (qui sont le pendant des classes abstraites), mais je n'ai pas compris qu'elle était ta question.
    Tu ne précises pas si tu travailles sous Mac OS ou iOS, mais la grosse difficulté à  laquelle tu vas te heurter est justement de savoir quelles propriétés possède l'objet courant lors de l'affichage. (Cette phrase aura beaucoup plus de sens quand tu commenceras à  travailler dessus.)
  • pixmanpixman Membre
    04:32 modifié #3
    j'ai déja réalisé deux applis en suivant les tutos de apple sur MacOS, et cela m'a aidé à  bien comprendre le principe et le fonctionnement de core data.

    L'utilisation que j'en fait actuellement est sur macOS.

    Pour ce qui est de l'affichage des mes entités héritant toutes de la même super-entité, j'ai trouvé ma réponse dans la doc ), il suffit de créer une relation avec la super-entité pour obtenir toutes les entitées qui en héritent.

    Maintenant, mon problème ce situe sur l'objet courant de ma sélection, car il faut que je sache quelle est l'entité pour pouvoir proposer une vue permettant de modifier ses propriétés.

    je continue mes recherches
  • MickMick Membre
    04:32 modifié #4
    Bonjour Pixman,

    je suis assez fan de CoreData en fait. J'avoue ne pas comprendre ton problème de "récupérer la sélection"...
    Je crois comprendre que tu as un arrayController en mode entity, bindé au managedObjectContext de l'app_delegate, => Donc tu récupère la sélection (moyennant un outlet vers l'arrayControleur) avec [leControleur selectedObjects] (un NSArray)... Ou bien j'ai pas compris ton soucis.
  • laudemalaudema Membre
    04:32 modifié #5
    Bonjour tous,

    Perso je ne suis pas fan non plus de Core Data, j'avais essayé à  mes débuts, espérant pouvoir m'y retrouver un peu "à  la 4D" mais il y a beaucoup d' "effets de bord" à  utiliser ce framework. Bref ...

    dans 1282934231:

    tu récupère la sélection (moyennant un outlet vers l'arrayControleur) avec [leControleur selectedObjects] (un NSArray)... Ou bien j'ai pas compris ton soucis.


    Oui et quand on a réduit la sélection à  au plus un objet (*) on peut utiliser [[leController selectedObjects] lastObject] qui renverra nil plutôt qu'un "index out of bounds" si la sélection est vide.

    * dans IB si on laisse décoché "Multiple" la sélection (selectedObjects) n'aura jamais qu'un objet, au plus. On peut également utiliser le NSArrayController associé pour "Avoid Empty Selection" afin d' avoir toujours un objet, au moins, mais il faut au minimum un objet dans arrangedObjects...
  • pixmanpixman Membre
    04:32 modifié #6
    Bonjour,

    j'ai fait d'autres tests, et j'arrive presque au résultat souhaité.
    Mon problème se situe surtout au niveau des relations entre les entités et non pas au niveau de la gestion des contrôleurs.

    Je doit faire d'autres tests pour bien cibler mon souci et je refait un post.

    Merci.
Connectez-vous ou Inscrivez-vous pour répondre.