robado contenido configuracion borrar bloqueado iphone initialization class-design subclass

contenido - borrar iphone bloqueado



¿Cómo inicializar una subclase de NSObject en iPhone? (2)

Me parece que esto puede funcionar:

TheClass *newObject = [[TheClass alloc] init]; //do something here [newObject release];

Quiero escribir algunos métodos en una clase para que otras clases puedan llamar a estos métodos usando [instance methodName:Parameter] .

Si la clase es una subclase de UIViewController , puedo usar initWithNibName para inicializarla. Pero quiero escribir los métodos en una subclase de NSObject , ¿cómo puedo inicializarlo?


iphony es correcto, pero él o ella no dice que usted necesita escribir el método init usted mismo. Tu método de inicio generalmente debería verse así:

- (id) init { if (self = [super init]) { myMember1 = 0; // do your own initialisation here myMember2 = 0; } return self; }

Aunque la documentación de apple dice

El método de inicio definido en la clase NSObject no se inicializa; simplemente vuelve a sí mismo.

y uno puede ser tentado a escribir

- (id) init { myMember1 = 0; // do your own initialisation here myMember2 = 0; return self; }

Esto es INCORRECTO y no sigue lo que se indica explícitamente en la documentación:

En una implementación personalizada de este método (inic), debe invocar el inicializador designado de super y luego inicializar y devolver el nuevo objeto.

DEBE. No debería, podría, debería, etc.

No debe asumir que el inicio de NSObject no cambie en el futuro; ni la superclase de la que se deriva tu clase personalizada.