Outils pour utilisateurs

Outils du site


objc:initialiseurs

Initialiseurs

Pas de constructeurs en Objective C : On utilise un (ou plusieurs) initialiseurs.

Règles

  • Si un classe possède plusieurs initialiseurs, l'un d'entre eux est un initialiseur par défaut. Il doit directement ou indirectement exécuter le travail d'initialisation de l'objet → Les autres initialiseurs doivent faire appel à lui. Il est clairement désigné dans le fichier d'en-tête.
  • Dans le cas d'une classe dérivée, l'initialiseur par défaut appelle l'initialiseur par défaut de sa super classe. Dans la réalité, à moins d'utiliser une conception exotique, on appelle toujours l'initialiseur du parent, puisque toutes les classes sont a minima dérivées de NSObject.
[super init]; // Ou autre méthode d'initialisation par défaut du parent
  • Si le nom de l'initialiseur par défaut de la classe n'est pas celui de l'initialiseur par défaut de la classe parente, il est nécessaire de redéfinir l'initialiseur par défaut de la classe parente.
// classe dérivée
- (id)initWithParametre:(NSString *)p autreParametre:(NSString *)p2
{
    self = [super initWithParametre:p];
    [self setAutreParametre;p2];
}
 
- (id)initWithParametre:(NSString *)p 
{
    return [self initWithParametre:p autreParametre:nil];
}
 
// classe parente
- (id)initWithParametre:(NSString *)p 
{
    [self setParametre:p];
    return self;
}
objc/initialiseurs.txt · Dernière modification: 2016/10/17 13:56 (modification externe)