Méthodes avec paramètres optionels.

xDonkey_Dev

Membre enregistré
28 Avril 2004
3
0
Visiter le site
Salut à tous,

En COCOA y a t'il moyen de créer une méthode pour un objet avec possibilité de lui passer des paramètres facultatifs (du genre
Bloc de code:
+ (id)stringWithFormat:(NSString *)format, ...
)

Pour la définition de la méthode avec ce code
Bloc de code:
- (void) myMethode:(NSString *)texte, ...;
et l'appel à celle-ci avec le code
Bloc de code:
[self myMethode:@"Methode test", 12, @"Essai"];
ça a l'air bon mais je fais comment pour récupèrer les paramètres 12 et "Essai"?

Merci d'avance.
 
Bonjour et bienvenue ! :)

Ta méthode à plusieurs paramètres doit être du style :

Bloc de code:
- (void) myMethod:(NSString *)texte withNumber:(int)x withAnOtherArgument:(float)f;

Il ne me semble pas qu'il y ait moyen de faire autrement.

Pour la première question (paramètre facultatif), je suppose que c'est possible (ça l'est bien en C++ je crois), mais je ne sais pas comment faire. Désolé.
 
Merci pour la bienvenue,

Pour une methode avec des paramètres définis en nombre et en type je sais faire.

Ce que je voulais c'est faire une methode ou tu peut passer un nombre indéterminés de paramètres et de type non définis comme
Bloc de code:
+ (id)stringWithFormat:(NSString *)format, ...
ou le 1° est un NSString et les suivants peuvent être des int, float, string, objet, etc...

En fait si qqu'un sait ou je pourrait trouver le code de la methode stringWithFormat je verrai comment sont récupèrées les paramètres.
 
Ah oui, navré, je n'avais pas tout à fait compris ta demande... à présent j'ai compris... mais par contre je n'en sais rien :rose:
 
molgow a dit:
Ah oui, navré, je n'avais pas tout à fait compris ta demande... à présent j'ai compris... mais par contre je n'en sais rien :rose:

Bonjour,

A tout hasard, en C, on passe par StdArg.h et ces macros associées qui permet d'envoyer des paramêtres de manière flou.
Mais quand tu dit COCOA je suppose que tu veut dire Objective C, je ne sait pas si cela marche toujours.

Cordialement