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.