Objective-C : analogue de @class pour les types ?

Bonjour !


 


J'utilise @class pour utiliser une classe dans un header .h


Y a-t-il une commande analogue pour les types ? J'ai une énumération définie dans le .h d'une classe. J'ai besoin d'utiliser le type en question dans le header d'une autre classe. Ou bien sinon, que faut-il faire ?


 


Je crois d'ailleurs qu'on peut utiliser @protocol de la même façon que @class pour utiliser un protocol.


Il accepte de compiler (mais met un warning). Si vous avez une meilleure solution, je suis preneur.


 


Sinon, que faites-vous ? Importez-vous les .h dans ces cas-là  ?


 


 


Merci !


Colas


Réponses

  • Am_MeAm_Me Membre
    septembre 2014 modifié #2

    Tu pourrais mettre ton enum dans SupportingFiles>NomProjet-Prefix.pch


     


    Ou faire un fichier Define.h à  l'intérieur tu mets ton enum et dans tes 2 autres .h tu fait include "Define.h"


     


     


    MAJ : ce que j'ai compris c'est que tu veux utiliser une enum dans 2 classe différentes


  • Oui c'est vrai ;-)


    Pour l'instant l'enum est déclarée dans le .h d'une classe.


     


    S'il n'y a pas d'autre solution, je ferai comme tu propose (.h distinct).


  • AliGatorAliGator Membre, Modérateur
    Malheureusement non il n'y a pas de solution (les enums étant des types primitifs venant du C à  l'inverse des classes et des protocoles, c'est là  toute la différence)


    Tu es donc obligé de déclarer l'énum dans un .h et de faire un #import.
  • Dommage qu'il n'existe pas un moyen comme en java de faire : 


     


    public enum {


    }


     


    mais je pense chaque langage a son avantage et "inconvénient"


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