En Objective-C 2.0, est-il possible de créer une méthode dont l'argument est facultatif ? C'est-à-dire qu'on peut avoir un appel de méthode comme ceci :
[aFraction print];
ainsi que ceci :
[aFraction print: someParameter];
dans le même programme.
Apple Langage de programmation Objective-C 2.0 Le guide oppose Obj-C à Python et semble dire que ce n'est pas autorisé. Je suis encore en train d'apprendre et je veux être sûr. Si cela est possible, alors quelle est la syntaxe, car mon deuxième exemple de code ne fonctionne pas.
Mise à jour : OK, je viens de créer deux méthodes, toutes deux nommées "print".
en-tête
-(void) print;
-(void) print: (BOOL) someSetting;
mise en œuvre
-(void) print {
[self print:0];
}
-(void) print: (BOOL) someSetting {
BOOL sv;
sv = someSetting;
if ( sv ) {
NSLog(@"cool stuff turned on");
}
else {
NSLog(@"cool stuff turned off");
}
}
les lignes de programme pertinentes
...
printParamFlag = TRUE;
// no parameter
[aCodeHolder print];
// single parameter
[aCodeHolder print:printParamFlag];
...
Je n'arrive pas à croire que ça ait marché. Y a-t-il une raison pour laquelle je ne devrais pas faire ça ?