SwiftUI Academy · Lektion

Hämta med @FetchRequest

Läs in hanterade objekt direkt i vyer.

Lektion 2 av 413 steg

Hämta med @FetchRequest är en gratis lektion i SwiftUI Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SwiftUI Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.

Läsa poster i vyer

Om en SwiftUI-vy ska visa sparade data måste den hämta dem från Core Data och renderas om när data ändras.

Property wrappern @FetchRequest

Property wrappern @FetchRequest kör en fråga för en entitet och håller resultaten aktuella och uppdaterade åt dig.

@FetchRequest(sortDescriptors: []) var tasks: FetchedResults<Task>

Vad du får tillbaka

Resultaten kommer som FetchedResults, en samling som du kan iterera över precis som över en array i vyns body.

Visa dem i en lista

Lägg resultaten direkt i en List med ForEach för att visa en rad för varje lagrad post.

List(tasks) { task in
    Text(task.title ?? "Untitled")
}

Sortera resultaten

Ange sortDescriptors så att raderna kommer i en förutsägbar ordning i stället för i en slumpmässig ordning.

@FetchRequest(sortDescriptors: [SortDescriptor(\.title)]) var tasks: FetchedResults<Task>

Filtrera med ett predikat

Lägg till ett NSPredicate för att bara hämta poster som följer en regel, till exempel färdiga uppgifter eller ett sökord.

@FetchRequest(sortDescriptors: [], predicate: NSPredicate(format: "isDone == true")) var done: FetchedResults<Task>

Den förblir uppdaterad

@FetchRequest bevakar context, så när du lägger till eller tar bort en post uppdateras vyn automatiskt. ⚡

Den behöver context

@FetchRequest läser context från environment, så värdet du injicerade i stacken måste finnas tillgängligt.

Hantera ett tomt resultat

När hämtningen inte returnerar något visar du ett tydligt tomt läge i stället för en tom skärm.

if tasks.isEmpty {
    Text("No tasks yet")
}

Valfria attribut

Core Data-attribut är ofta optional i Swift, så packa upp dem säkert innan du visar deras värden.

Deklarera den som var

Deklarera en @FetchRequest-egenskap som var, eftersom wrappern uppdaterar de lagrade resultaten när data ändras.

Snabbtest

Du har kopplat in @FetchRequest. Ett snabbtest om hur den fungerar.

Sammanfattning

Du använde @FetchRequest för att hämta poster till en vy, sortera och filtrera dem och låta listan uppdateras själv när data ändras. ✨

Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Hämta med @FetchRequest” gratis?

Ja – hela texten till ”Hämta med @FetchRequest” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SwiftUI Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Hämta med @FetchRequest”?

Läs in hanterade objekt direkt i vyer. Ni övar på SwiftUI Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig SwiftUI Academy?

Du behöver inga förkunskaper. Utbildningen i SwiftUI Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Hämta med @FetchRequest”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här SwiftUI Academy-lektionen?

Ja. Varje SwiftUI Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Core Data-stacken
  2. Hämta med @FetchRequest
  3. Skapa och spara entiteter
  4. Predikat och sorteringsbeskrivningar
← Tillbaka till SwiftUI Academy