2010-02-03 12 views
0

Bien que je sais déjà que ce n'est pas possible, comme je comprends comment fonctionne la programmation, je voudrais avoir une confirmation de cela.passer valeur enum spécifique à la méthode dans l'objectif-c

J'ai un ENUM

typedef enum { 
enum_first=1, 
enum_second=2 
} myenum 

que je voulais faire une surcharge de la méthode, cette syntaxe est évidemment faux, mais il donne l'idée:

-(id)myenumTest:(myenum.enum_first)value {...} 

-(id)myenumTest:(myenum.enum_second)value {...} 

Pouvez-vous suggérer une autre façon pour cette ?

grâce Leonardo

+0

Objective-C ne supporte pas la surcharge. En dehors des templates C++, aucun système de type que je connaisse ne permet de surcharger des méthodes basées sur des valeurs. Est-ce que quelqu'un d'autre sait de telles bêtes? – outis

+1

Les langages avec correspondance de modèle comme SML et Haskell vous permettent d'écrire une définition de fonction comme celle-ci sans une instruction conditionnelle explicite. Objective-C ne l'est certainement pas. – Chuck

+0

@Chuck: ce sont les bêtes! – outis

Répondre

3

j'utiliser une déclaration de cas dans la méthode basée sur la valeur de la variable ENUM.