objective introduccion estructura ejemplos apple objective-c initialization

objective c - introduccion - ¿Está bien llamar a un método init en sí mismo, en un método init?



introduccion a objective c (1)

Recientemente me di cuenta de que necesitaba agregar un argumento al método init para una clase de ayuda que tengo. La clase auxiliar trata con vistas de alerta, por lo que ya tiene un montón de argumentos en el init, que se miran, ajustan y luego se envían a la vista de alerta.

Como uso el método tal como está en varios lugares, no quiero arriesgarme a fallar (al perder uno de esos lugares y obtener un "selector no reconocido" en manos de un cliente), así que decidí agregar un segundo método init.

Es decir

- (id)initWithA:B:C:D:

y

- (id)initWithA:B:C:foo:D:

En este momento, simplemente copié la primera implementación en el foo: una, pero lo ideal sería hacer que la primera llamada sea la segunda, es decir,

- (id)initWithA:a B:b C:c D:d { return [self initWithA:a B:b C:c foo:nil D:d]; }

pero no estoy seguro de si esto es aceptable o no. El código parece estar funcionando bien.


Sí, eso es perfectamente aceptable y en realidad bastante común.

Es por eso que tenemos cosas llamadas " Inicializador designado ". Ese es el método de inicialización al que todos los demás inicializadores se redireccionan (generalmente).