Définir des types @Model
Annotez des classes comme modèles persistants.
Définir des types @Model est une leçon SwiftUI Academy gratuite sur CoddyKit. Ceci est la leçon 1 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 SwiftUI Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SwiftUI Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Meet SwiftData
SwiftData is Apple's modern way to save app data right on the device. You describe your data once, and it handles storage for you. 💾
The @Model Macro
You turn a plain class into a saved type by adding the @Model macro above it. That one line makes every instance persistable.
@Model
class Task {
}Stored Properties
Every stored property on a @Model class is saved automatically. No extra annotations are needed for basic values like text or numbers.
@Model
class Task {
var title: String
var isDone: Bool
}Models Are Classes
SwiftData models must be classes, not structs. SwiftData tracks them by reference so it can watch changes and save them.
Adding an Initializer
Give your model an init so you can create instances with starting values. This keeps your stored properties set when a task is made.
init(title: String, isDone: Bool = false) {
self.title = title
self.isDone = isDone
}Supported Property Types
SwiftData saves common types out of the box: String, Int, Double, Bool, Date, and Data all just work without setup.
var due: Date
var priority: IntOptional Properties
Mark a value optional when it may be missing. SwiftData stores nil happily, which is great for fields the user has not filled in yet.
var note: String?Unique Constraints
Add @Attribute(.unique) to stop duplicate values for a property. SwiftData will keep that field one-of-a-kind across your store.
@Attribute(.unique) var id: UUIDRelationships Between Models
Models can point to each other with a @Relationship. This links one record to another, like a project owning many tasks.
@Relationship var tasks: [Task]Cascade Deletes
A .cascade delete rule removes related records together. Delete a project and its tasks vanish too, keeping your data tidy.
@Relationship(deleteRule: .cascade)
var tasks: [Task]Ignoring a Property
Use @Transient for values you do not want saved, like a temporary cache. SwiftData skips these when writing to disk.
@Transient var isEditing = falseQuick Check
Quick check on defining models.
Recap: Defining Models
You learned that @Model turns a class into saved data, with normal properties, optionals, unique attributes, and relationships. Your data shape is ready. 🎉
Questions Fréquemment Posées
La leçon « Définir des types @Model » est-elle gratuite ?
Oui — le texte complet de « Définir des types @Model » 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 SwiftUI Academy, passe à CoddyKit PRO. Le cours SwiftUI Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Définir des types @Model » ?
Annotez des classes comme modèles persistants. Tu pratiques SwiftUI 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 SwiftUI Academy ?
Aucune expérience préalable n'est requise. SwiftUI 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 1 sur 4.
Combien de temps prend la leçon « Définir des types @Model » ?
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 SwiftUI Academy ?
Oui. Chaque leçon SwiftUI 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
- Définir des types @Model
- Le conteneur et le contexte du modèle
- Interroger avec @Query
- Insérer, mettre à jour et supprimer