0% ont trouvé ce document utile (0 vote)
3 vues5 pages

Swift Data

Transféré par

sede.joel
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues5 pages

Swift Data

Transféré par

sede.joel
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

C’est quoi SwiftData

SwiftData
est un framework Apple pour :
• stocker des données localement
• faire des requêtes
• gérer automatiquement la mémoire

Il permet de gérer facilement une base de données locale dans une app iOS/macOS

Voici une petite vidéo tutoriel : [Link]


Comment l’intégrer dans un projet

1. Créer un modèle
Avec SwiftData, tu utilises @Model :

import SwiftData
import Foundation

@Model
class Contact {
var id: UUID
var nom: String
var prenoms: String

init(nom: String, prenoms: String) {


[Link] = UUID()
[Link] = nom
[Link] = prenoms
}
}

2. Configurer le container
Dans ton [Link] :
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(for: [Link])
}
}

2
3. Lire les données
@Query
var contacts: [Contact]

4. Ajouter une donnée


@Environment(\.modelContext) private var context

func addContact() {
let contact = Contact(nom: "Sede", prenoms: "Joel")
[Link](contact)
}

5. Supprimer
func deleteContact(contact: Contact) {
[Link](contact)
}

6. Exemple complet
struct ContactView: View {
@Environment(\.modelContext) private var context
@Query private var contacts: [Contact]

var body: some View {


NavigationStack {
List {
ForEach(contacts) { contact in

3
Text([Link])
}
.onDelete { indexSet in
for index in indexSet {
[Link](contacts[index])
}
}
}
.navigationTitle("Tasks")
.toolbar {
Button {
addContact()
} label: {
Image(systemName: "plus")
}
}
}
}

func addContact() {
let contact = Contact(nom: "Sede", prenoms: "Joel")
[Link](contact)
}

func deleteContact(contact: Contact) {


[Link](contact)
}
}

7. Filtre simple
@Query(filter: #Predicate<Contact> { $[Link] == "Juarez" })
var filterContact: [Contact]

8. Filtre avec plusieurs conditions


@Query(filter: #Predicate<Contact> {

4
$[Link] == "Sede" && $[Link]("Henri")
})
var filteredContact: [Contact]

Vous aimerez peut-être aussi