0Pricing
Swift Academy · Leçon

Initialisateurs et deinit (classes)

Créez des initialisateurs désignés et de commodité, fournissez des valeurs par défaut, utilisez init pouvant échouer si nécessaire et comprenez les désinitialiseurs de classes.

Initialisateurs et deinit (classes) est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 3 leçons au total.

Vue d’ensemble

Cette leçon présente les initialiseurs désignés et de commodité, les valeurs par défaut, l’initialisation pouvant échouer et le désinitialiseur des classes.

Principes de base de l’initialisation des structures

Les structures reçoivent un initialiseur membre à membre. Fournissez des valeurs par défaut pour simplifier les appels.

struct User {
    var name: String = "Guest"   // default value
    var age: Int

    // memberwise init is synthesized: User(name:age:)
}
let u1 = User(name: "Ada", age: 20)
let u2 = User(age: 0)            // uses default name
print(u1.name, u2.name)

Initialiseur désigné

Un initialiseur désigné garantit que toutes les propriétés stockées sont définies avant leur utilisation.

class Person {
    let name: String
    let id: Int

    // Designated initializer: fully initializes stored properties
    init(name: String, id: Int) {
        self.name = name
        self.id = id
    }
}
let p = Person(name: "Bob", id: 1)
print(p.name, p.id)

Initialiseur de commodité

Les initialiseurs de commodité doivent déléguer à un initialiseur désigné de la même classe.

class Rectangle {
    var width: Double
    var height: Double

    // Designated
    init(width: Double, height: Double) {
        self.width = width
        self.height = height
    }

    // Convenience must call a designated initializer
    convenience init(square side: Double) {
        self.init(width: side, height: side)
    }
}
print(Rectangle(square: 3).width)

Initialisation pouvant échouer

Utilisez init? pour les données d’entrée qui peuvent échouer lors de la validation. Le résultat est facultatif.

struct Email {
    let value: String
    init?(_ raw: String) {
        guard raw.contains("@") else { return nil } // fail to initialize
        self.value = raw
    }
}
print(Email("a@b.com")?.value ?? "invalid")
print(Email("not email")?.value ?? "invalid")

Désinitialiseur

Seules les classes possèdent un désinitialiseur, appelé lorsque l’instance est désallouée (ARC).

class TempResource {
    let id: Int
    init(id: Int) { self.id = id }
    deinit { print("Releasing resource", id) }
}
do {
    let r = TempResource(id: 42)
    print("Using", r.id)
} // r goes out of scope; ARC may call deinit here

Initialiseurs désignés ou de commodité

Vérification rapide : quel initialiseur les initialiseurs de commodité doivent-ils finalement appeler ?

Récapitulatif

Récapitulatif : utilisez des initialiseurs désignés pour définir toutes les propriétés ; ajoutez des initialiseurs de commodité pour proposer des appels plus simples ; envisagez init? pour la validation ; les classes libèrent leurs ressources dans le désinitialiseur.

Questions Fréquemment Posées

La leçon « Initialisateurs et deinit (classes) » est-elle gratuite ?

Oui — le texte complet de « Initialisateurs et deinit (classes) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « Initialisateurs et deinit (classes) » ?

Créez des initialisateurs désignés et de commodité, fournissez des valeurs par défaut, utilisez init pouvant échouer si nécessaire et comprenez les désinitialiseurs de classes. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 3.

Combien de temps prend la leçon « Initialisateurs et deinit (classes) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Structures contre classes, propriétés et initialisateurs
  2. Propriétés stockées contre calculées, observateurs
  3. Initialisateurs et deinit (classes)
← Retour à Swift Academy