iphony es correcta, pero él o ella no dice que tiene que escribir el método init mismo. Su método init en general, debe ser algo como esto:
- (id) init
{
if (self = [super init])
{
myMember1 = 0; // do your own initialisation here
myMember2 = 0;
}
return self;
}
Aunque el apple documentation dice
El método init definido en la clase NSObject hace ninguna inicialización; simplemente regresa a sí mismo.
y uno puede estar tentado a escribir
- (id) init
{
myMember1 = 0; // do your own initialisation here
myMember2 = 0;
return self;
}
esto está mal y no seguir lo que se dice explícitamente en la documentación:
En una implementación personalizada de este método (init) , debe invocar el inicializador designado de super , luego inicializar y devolver el nuevo objeto.
MUST. No debería, podría, debería, etc.
No debe suponer que el init de NSObject no cambia en el futuro; ni la superclase de la que deriva su clase personalizada.
Eso simplemente está inicializando el objeto "newObject" como una clase TheClass. Si TheClass no implementa "- (id) init" con "[super init]" y "return self", su inicialización probablemente fallará. – Klompengard