2010-06-04 6 views
0

J'ai défini un nouveau type avec ce codeUtilisez le type défini par l'utilisateur (avec typedef) comme paramètre de méthode

typedef enum result 
{ 

    error, 
    error1, 
    erorr2, 

}result; 

Après que je veux mettre en œuvre une méthode qui prend un « résultat » en tant que paramètre

- (void) setError:(result)errorNumber 

Il semble que ce n'est pas autorisé et me donner une erreur de compilation.

Est-il impossible d'utiliser le type défini par l'utilisateur comme paramètre de méthode?!?

+0

Pleeeease pouvez-vous nous dire quelle est l'erreur? – JeremyP

+0

J'ai déplacé le tyoedef dans le fichier de préfixe et tout fonctionne correctement – Luca

Répondre

2

Vous devez importer le fichier d'en-tête qui contient le typedef avant de l'utiliser. Par exemple:

File1.h:

typedef enum { a, b, c } resultType; 

File2.h:

#import "File1.h" 

... 


- (void) someMethod:(resultType)param; 

File1.h peuvent être importées en autant de fichiers en-tête (ou la mise en œuvre) que vous avez besoin.

+0

Désolé d'écrire une erreur - (void) setTError: (résultat) errorNumber; mais aussi dans ce cas il me renvoie une erreur – Luca

+0

@Luca Où est votre typedef? Est-ce dans le même fichier? Quel est le message d'erreur du compilateur? –

+0

La comparaison des erreurs de compliant uniquement si j'essaie d'utiliser mon paramètre d'annonce de type défini par l'utilisateur d'une méthode dans un autre fichier .h. J'ai importé le fichier .h avec la déclaration de type ... n'est-il pas possible de l'utiliser dans un autre fichier pour importer l'entête avec le typedef? merci – Luca

Questions connexes