SwiftData: context.insert() speichert keine DatenIOS

Programmierung für iOS
Anonymous
 SwiftData: context.insert() speichert keine Daten

Post by Anonymous »

Ich bin neu in der iOS-Entwicklung und lerne gerade, Daten mit SwiftData zu speichern.
Ich erstelle eine sehr einfache To-Do-Listen-App, um zu verstehen, wie lokale Persistenz funktioniert.
Allerdings bin ich an eine Wand gestoßen und wenn ich context.insert(item) aufrufe, erscheint die neue Aufgabe nie in meiner Liste und mein @Query-Array (Elemente) hat immer den Wert 0.
Ich habe die Dokumentation durchgesehen, Tutorials angesehen, und habe sogar ChatGPT gefragt, aber ich kann immer noch nicht herausfinden, was fehlt.
Hier ist mein Setup:

Code: Select all

import Foundation
import SwiftData

@Model
class DataItem: Identifiable {
var id: UUID = UUID()
var text: String
var isCompleted: Bool = false

init(text: String) {

import SwiftUI

@main
struct SwiftDataIssueApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(for: DataItem.self)
}
}

Code: Select all

import SwiftUI
import SwiftData

struct ContentView: View {
@Environment(\.modelContext) private var context
@Query private var items: [DataItem]
@State private var newTask: String = ""

var body: some View {
NavigationView {
List {
ForEach(items) { item in
Text(item.text)
}
}
.navigationTitle(Text("Tasks"))

VStack {
TextField("Enter New Task", text: $newTask)
Button("Add Task", action: addTask)
}
.padding()
}
}

func addTask() {
let item = DataItem(text: newTask)
context.insert(item)
print(item.text)
print(items.count)
newTask = ""
}
}
Ich möchte darauf hinweisen, dass items.count immer wieder 0 zurückgibt.
Weiß jemand warum?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post