Problème d'import récursif

olofolof Membre
23:07 modifié dans API AppKit #1
Bonjour,

j'ai une application qui gère une cave à  vin. Côté modèle, j'ai une classe FGVin (avec le nom, les cépages, la couleur, le nombre de bouteilles, ...). J'ai une autre classe FGSortie qui a les attributs nbBouteilles, dateSortie et occasion.
Ma classe FGVin a aussi un tableau d'objets FGSortie.

En résumé, un vin peut avoir de 0 à  n sorties.

Jusque là , tout va bien. Maintenant, j'ajoute la possibilité de trouver un vin par rapport à  une date (de sortie). Je trouve sans problèmes les sorties qui ont été effectuées à  une date précise, mais par contre, je n'arrive pas à  remonter jusqu'au vin.

Je me suis dit, il faut que j'ajoute un lien sur le vin dans mes sorties. Le problème est que rien qu'en ajoutant un #import "FGVin.h" dans ma classe FGSorties, j'ai des erreurs de compilation.
Il faut savoir que ma classe FGVin a un import de FGSortie.

J'ai comme l'impression que j'ai un problème d'import récursif, non ?

Est-ce que vous avez l'impression que je fais quelque chose de faux ? Vous faut-il plus d'informations ???

Merci !

Réponses

  • schlumschlum Membre
    23:07 modifié #2
  • Philippe49Philippe49 Membre
    23:07 modifié #3
    Le #import est fait dans le .h ou le .m ?

    Comme le dit Schlum, avec beaucoup de concision  ::), dans le .h le @class est suffisant

  • schlumschlum Membre
    23:07 modifié #4
    La concision pousse les gens à  rechercher derrière par eux même  :)
    Ce n'est pas forcément une mauvaise chose...

    À considérer comme une piste plutôt qu'une réponse toute crue quoi.
  • olofolof Membre
    23:07 modifié #5
    dans 1181768838:


    En effet, merci Schlum.

    Quelqu'un a juste une petite explication de cette directive (si c'est comme ça qu'on l'appelle ?) ?

    Merci !
  • Philippe49Philippe49 Membre
    23:07 modifié #6
    dans 1181797927:

    La concision pousse les gens à  rechercher derrière par eux même  :)
    Ce n'est pas forcément une mauvaise chose...

    À considérer comme une piste plutôt qu'une réponse toute crue quoi.


    Entièrement d'accord !
    Ma remarque était admirative.

    Et comme dit Paul Meurisse dans un des monocles, "Il faut savoir regarder les choses qu'il y a ... derrière les choses"

    Bonne journée
  • olofolof Membre
    23:07 modifié #7
    dans 1181797482:

    Le #import est fait dans le .h ou le .m ?

    Comme le dit Schlum, avec beaucoup de concision  ::), dans le .h le @class est suffisant




    Le #import était dans le .h

    En effet, très concis  :) Dans mon cas, suffisant pour que ça fonctionne, mais pas pour comprendre les dessous de la chose... Il faut dire qu'une recherche @class sur Google n'a pas l'air de tenir compte du signe @...
  • Philippe49Philippe49 Membre
    23:07 modifié #8
    dans 1181798314:


    Quelqu'un a juste une petite explication de cette directive (si c'est comme ça qu'on l'appelle ?) ?


    "Ce que j'en ai compris"
    @class nom_de_classe;
    Permet d'informer le compilateur que la classe existe, sans plus à  ma connaissance.
    On peut donc déclarer des objets de cette classe, mais les méthodes n'en sont pas connues.
  • 23:07 modifié #9
    dans 1181798721:

    que la classe existe


    ... par forcément justement ;) Tu peux essayer de faire un @class TrucMachinChose; tu n'as aucun warning ;)
  • schlumschlum Membre
    23:07 modifié #10
    dans 1181798450:

    En effet, très concis  :) Dans mon cas, suffisant pour que ça fonctionne, mais pas pour comprendre les dessous de la chose... Il faut dire qu'une recherche @class sur Google n'a pas l'air de tenir compte du signe @...


    Effectivement, ça rend la recherche d'info difficile  :(

    Avec "class directive", on tombe là  dessus sur la doc Apple :
    http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_4_section_5.html

    @class Rectangle, Circle;
    This directive simply informs the compiler that “Rectangle” and “Circle” are class names. It doesn't import their interface files.
  • Eddy58Eddy58 Membre
    23:07 modifié #11
    Ha, j'ai retrouvé l'explication de Renaud dans ce topic. :)
  • olofolof Membre
    23:07 modifié #12
    dans 1181807347:

    Ha, j'ai retrouvé l'explication de Renaud dans ce topic. :)


    Je l'avais pas vu. Merci Eddy, c'est parfait !
Connectez-vous ou Inscrivez-vous pour répondre.