In Objective-C 2.0, è possibile creare un metodo in cui l'argomento è facoltativo? Cioè, si può avere una chiamata di metodo come questo:Argomenti facoltativi in Objective-C 2.0?
[aFraction print];
così come questo:
[aFraction print: someParameter];
nello stesso programma.
Apple linguaggio di programmazione Objective-C 2.0 guida contrasti Obj-C con Python e sembra dire che questo non è consentito. Sto ancora imparando e voglio esserne sicuro. Se è possibile, allora qual è la sintassi, perché il mio secondo esempio di codice non funziona.
Aggiornamento: OK, ho appena fatto due metodi, entrambi denominati "stampa".
intestazione
-(void) print;
-(void) print: (BOOL) someSetting;
attuazione
-(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");
}
}
le linee di programma interessati
...
printParamFlag = TRUE;
// no parameter
[aCodeHolder print];
// single parameter
[aCodeHolder print:printParamFlag];
...
Non posso BEL credo che abbia funzionato C'è qualche ragione per cui non dovrei farlo?
Credo che ciò che non è permesso è riordinare gli argomenti quando si usano i nomi. – user57368
Avere sia la stampa che la stampa: non aiuta la leggibilità. –
Funziona, perché i due punti fanno parte del nome del metodo. – Kornel