Sobes.tech
Junior — Middle

Quelles méthodes d'initialisation des objets connaissez-vous et utilisez-vous dans les classes?

sobes.tech IA

Réponse de l'IA

En iOS (Swift/Objective-C), différentes méthodes sont utilisées pour initialiser des objets dans des classes:

  1. Initialiseurs (initializers) — méthodes spéciales qui définissent l'état initial de l'objet. En Swift, c'est init(), en Objective-C, ce sont les méthodes -init.

  2. Initialiseurs avec paramètres — permettent de définir des valeurs initiales lors de la création de l'objet.

  3. Constructeurs avec délégation — un initialiseurs appelle un autre pour éviter la duplication de code.

  4. Initialisation via des propriétés par défaut — les propriétés de la classe peuvent avoir des valeurs par défaut qui sont définies lors de la création de l'objet.

Exemple en Swift:

class Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    convenience init(name: String) {
        self.init(name: name, age: 0)
    }
}

let p1 = Person(name: "Иван", age: 30)
let p2 = Person(name: "Мария")

En Objective-C, l'initialisation se fait généralement via la méthode -init ou des initialiseurs personnalisés, par exemple:

- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
    self = [super init];
    if (self) {
        _name = name;
        _age = age;
    }
    return self;
}