2012-04-02 12 views

Respuesta

8

Técnicamente, no. El documentation for -[NSObject init] dice que

El método init definido en la clase NSObject hace ninguna inicialización; simplemente devuelve self.

Debido a que está documentado y es probable que haya ya un montón de código que se basa en él, ese hecho es altamente poco probable que cambie en futuras versiones de Mac OS X.

Editar:BoltClock's a Unicorn trae un punto que me gustaría hacer más hiperbólico: el tiempo total ahorrado al no llamar al -[NSObject init] para todos los que alguna vez ejecuten su programa es poco probable que supere el tiempo de depuración en el que incurriría si alguna vez cambia la superclase de su clase a algo que no sea NSObject y olvide agregar una llamada al [super init].

4

Desde el documentation, no parece hacer cualquier inicialización en absoluto:

El método init definido en la clase NSObject hace ninguna inicialización; simplemente devuelve self.

supongo que sería inocua, que no llame a [super init], pero no hay razón para no seguir las convenciones y, ya sabes, lo llaman en la subclase de todos modos. Por ejemplo, su subclase puede terminar heredando de otra clase en el futuro, que puede contener lógica de inicialización en su propio método -init que su subclase requerirá.

0

Simplemente llame a través de uno de los inicializadores designados de super en su implementación, ya que debe hacer lo que es claro y correcto.

Cuestiones relacionadas