En Objective-C 2.0, ¿es posible hacer un método donde el argumento sea opcional? Es decir, se puede tener una llamada a un método como éste:Argumentos opcionales en Objective-C 2.0?
[aFraction print];
, así como este:
[aFraction print: someParameter];
en el mismo programa.
Apple Objective-C 2.0 Programming Language guía contrasta Obj-C con Python y parece decir que esto no está permitido. Todavía estoy aprendiendo y quiero estar seguro. Si es es posible, entonces ¿cuál es la sintaxis, porque mi segundo ejemplo de código no funciona.
Actualización: Bien, acabo de hacer dos métodos, ambos denominados "imprimir".
cabecera
-(void) print;
-(void) print: (BOOL) someSetting;
aplicación
-(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");
}
}
las líneas de programa pertinentes
...
printParamFlag = TRUE;
// no parameter
[aCodeHolder print];
// single parameter
[aCodeHolder print:printParamFlag];
...
No puedo bel Creo que funcionó. ¿Hay alguna razón por la que no debería hacer esto?
Creo que lo que no está permitido es reordenar los argumentos cuando usas nombres. – user57368
Tener tanto impresión como impresión: no ayuda a la legibilidad. –
Funciona, porque los dos puntos forman parte del nombre del método. – Kornel