En Objective-C 2.0, est-il possible de faire une méthode où l'argument est optionnel? Autrement dit, vous pouvez avoir un appel de méthode comme ceci:Arguments optionnels dans Objective-C 2.0?
[aFraction print];
ainsi que ceci:
[aFraction print: someParameter];
dans le même programme.
Apple Le langage de programmation Objective-C 2.0 compare Obj-C avec Python et semble dire que cela n'est pas autorisé. J'apprends encore et je veux être sûr. Si est possible, alors quelle est la syntaxe, parce que mon deuxième exemple de code ne fonctionne pas.
Mise à jour: OK, je viens de faire deux méthodes, toutes deux nommées "print".
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 ne peux pas bel ieve ça a marché. Y a-t-il une raison pour laquelle je ne devrais pas faire ça?
Je crois que ce qui n'est pas autorisé est de réorganiser les arguments lorsque vous utilisez des noms. – user57368
Avoir à la fois imprimer et imprimer: n'aide pas la lisibilité. –
Cela fonctionne, car les deux-points font partie du nom de la méthode. – Kornel