0Pricing
Swift Academy · Leçon

Valeurs projetées avec $binding

Exposer une projectedValue pour fournir des fonctionnalités supplémentaires via le préfixe $.

Valeurs projetées avec $binding est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. 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 4 leçons au total.

Bienvenue

Les valeurs projetées (accessibles via `$`) fournissent une interface secondaire aux enveloppes de propriétés — elles sont utilisées par `@State` et `@Published` de SwiftUI pour exposer `Binding` et `Publisher`.

Ajouter projectedValue

```swift @propertyWrapper struct Toggle { var wrappedValue: Bool = false var projectedValue: String { wrappedValue ? "ON" : "OFF" } } struct Model { @Toggle var active } var m = Model() print(m.$active) // "OFF" — projected value accessed with $ ```

Type de projectedValue

La valeur projetée peut être de n'importe quel type : un `Binding`, un `Publisher`, une `String` ou un type personnalisé. `@State` de SwiftUI projette un `Binding` qui permet une circulation des données dans les deux sens.

Exemple de projection de liaison

```swift // @State projects Binding: @State var isOn = false Toggle(isOn: $isOn) // $isOn is Binding ```

Projection de liaison personnalisée

```swift @propertyWrapper struct Validated { var wrappedValue: String var projectedValue: Bool { !wrappedValue.isEmpty } } struct Form { @Validated var email = "" } var f = Form() f.email = "hi@example.com" print(f.$email) // true — projected Bool ```

Projection de @Published

```swift class VM: ObservableObject { @Published var score = 0 } let vm = VM() let cancellable = vm.$score // Publisher .sink { print("Score: \($0)") } vm.score = 10 // "Score: 10" ```

Accéder à projectedValue dans une enveloppe

```swift @propertyWrapper struct History { private var current: T private(set) var projectedValue: [T] = [] var wrappedValue: T { get { current } set { projectedValue.append(current); current = newValue } } init(wrappedValue: T) { current = wrappedValue } } ```

Utiliser l'enveloppe History

```swift struct Counter { @History var count = 0 } var c = Counter() c.count = 1; c.count = 5; c.count = 3 print(c.$count) // [0,1,5] — history of old values ```

Distinguer la syntaxe de `$`

```swift struct Form { @State var text = "" var body: some View { TextField("Enter", text: $text) // $text is Binding } } // text → String (wrappedValue) // $text → Binding (projectedValue) ```

Considérations de conception

• `projectedValue` est facultatif — ajoutez-le uniquement lorsqu'une interface secondaire est nécessaire • Son type peut être complètement différent de celui de `wrappedValue` • Utilisez `$` à l'endroit de l'appel pour accéder à la valeur projetée • Les valeurs projetées sont particulièrement utiles pour les éditeurs de Combine et les liaisons de SwiftUI

Vérification rapide

Comment accéder à la valeur `projectedValue` d'une enveloppe de propriété ?

Récapitulatif

Points essentiels : • `projectedValue` fournit une API secondaire aux enveloppes via `$` • Peut être de n'importe quel type — Binding, Publisher, Bool, Array • `@State` projette `Binding` ; `@Published` projette `Publisher` • Accédez-y avec `$propertyName` dans le corps comme à l'endroit de l'appel • Ajoutez-la uniquement lorsqu'une seconde interface apporte une réelle valeur Ensuite : @Published et Combine.

Questions Fréquemment Posées

La leçon « Valeurs projetées avec $binding » est-elle gratuite ?

Oui — le texte complet de « Valeurs projetées avec $binding » 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 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Valeurs projetées avec $binding » ?

Exposer une projectedValue pour fournir des fonctionnalités supplémentaires via le préfixe $. 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 2 sur 4.

Combien de temps prend la leçon « Valeurs projetées avec $binding » ?

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. Créer un property wrapper personnalisé
  2. Valeurs projetées avec $binding
  3. @Published et observation dans Combine
  4. Composer plusieurs property wrappers
← Retour à Swift Academy