Pregunta

Quiero escribir algunos métodos en una clase para que otras clases puedan llamar a estos métodos usando [instancia methodName: Parámetro] .

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?

¿Fue útil?

Solución 2

Creo que esto puede funcionar:

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

Otros consejos

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

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

Aunque documentación de apple dice

  

El método init definido en la clase NSObject no inicializa; simplemente regresa 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 establece explícitamente en la documentación:

  

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

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

No debe asumir que el init de NSObject no cambia en el futuro; ni la superclase de la que deriva su clase personalizada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top