Question

Je souhaite écrire des méthodes dans une classe afin que d'autres classes puissent appeler ces méthodes à l'aide de [instance methodName: Parameter] .

Si la classe est une sous-classe de UIViewController , je peux utiliser initWithNibName pour l'initialiser. Mais je veux écrire les méthodes dans une sous-classe NSObject , comment puis-je l'initialiser?

Était-ce utile?

La solution 2

Je trouve que cela peut fonctionner:

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

Autres conseils

iphony est correct, mais il ne dit pas que vous devez écrire vous-même la méthode init. Votre méthode init devrait généralement ressembler à ceci:

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

Bien que le documentation Apple indique

  

La méthode init définie dans la classe NSObject ne fait aucune initialisation; il retourne tout simplement à soi-même.

et on peut simplement être tenté d'écrire

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

ceci est FAUX et ne suit pas ce qui est explicitement indiqué dans la documentation:

  

Dans une implémentation personnalisée de cette méthode (init), vous devez appeler la commande super   initialiseur désigné puis initialisez et retournez le nouvel objet.

DOIT. Pas devrait, pourrait, devrait, etc.

Vous ne devez pas présumer que l'init de NSObject ne changera pas à l'avenir; ni la super-classe dont dérive votre classe personnalisée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top