Hallo zusammen,
ich komme gerade mit der Kombination von SwiftUI und CoreData gar nicht mehr zurecht.
Ich habe eine SwiftUI-App. In dieser gibt es in der Datenbank eine Tabelle genannt "Mandanten". Die gleiche habe ich auch in der Datei "Persistence" erwähnt:
Alles anzeigen
Dann habe ich der App an sich mitgeteilt, dass es einen PersistenceContainer gibt:
Alles anzeigen
Soweit so gut. In einer Übungsapp habe ich dann die DB direkt aus einer SwiftUI-View heraus kontaktiert, hier ist es anders. Es gibt eine andere Swiftdatei, diese enthält die Klasse "Mitarbeiter". Der Mitarbeiter loggt sich ein mit seinen Anmeldedaten, die App kontaktiert eine Webanwendung und schaut, ob sioe in der dortigen MySQL-DB diesen Mitarbeiter finden kann. Wenn ja, werden per JSON diverse Daten zurückübermittelt (unter anderem "Mandanten"), die dann in CoreData gespeichert werden sollen.
Zunächst habe ich oben in der Datei, welche die besagte Klasse beinhaltet, folgendes geschrieben:
In der Funktion, welche die aus JSON erhaltenen Daten in CoreData übertragen soll, steht dann:
Letzte Zeile bezieht sich auf diese Funktion:
Soweit bekomme ich keine Fehler, erst wenn ich die App tatsächlich starte. Dann heißt es plötzlich "NSManagedObject of class 'Mandanten' must have a valid NSEntityDescription".
Da war ich letztes Jahr als Swift-Anfänger soooo stolz, endlich mal CoreData anwenden zu können - zack! Mit den letzten Änderungen alles wieder dahin. In einer Swift UI App gibt es keine Datei "AppDelegate" mehr, alles wieder anders, es funktioniert nicht mehr. Wo ist der Fehler? Hat jemand eine Idee? Vielen Dank im Voraus!
VG Arek
ich komme gerade mit der Kombination von SwiftUI und CoreData gar nicht mehr zurecht.
Ich habe eine SwiftUI-App. In dieser gibt es in der Datenbank eine Tabelle genannt "Mandanten". Die gleiche habe ich auch in der Datei "Persistence" erwähnt:
Quellcode: Persistence.swift
- import CoreData
- struct PersistenceController {
- static let shared = PersistenceController()
- let container: NSPersistentContainer
- init() {
- // Hier muss in Klammern der Name der DB-Datei eingetragen sein
- container = NSPersistentContainer(name: "Mandanten")
- // Der Container wird hier geladen, falls Fehler auftreten, werden die hier ausgeworfen:
- container.loadPersistentStores {(storeDescription, error) in
- if let error = error as NSError? {
- fatalError("Unerwarteter Fehler: \(error)")
- }
- }
- }
- }
Dann habe ich der App an sich mitgeteilt, dass es einen PersistenceContainer gibt:
Quellcode
- import SwiftUI
- @main
- struct MariaApp: App {
- let persistenceContainer = PersistenceController.shared
- static let DerMitarbeiter = Mitarbeiter()
- var body: some Scene {
- WindowGroup {
- ContentView(mitarbeiter: MariaApp.DerMitarbeiter)
- .environment(\.managedObjectContext, persistenceContainer.container.viewContext)
- }
- }
- }
Zunächst habe ich oben in der Datei, welche die besagte Klasse beinhaltet, folgendes geschrieben:
Soweit bekomme ich keine Fehler, erst wenn ich die App tatsächlich starte. Dann heißt es plötzlich "NSManagedObject of class 'Mandanten' must have a valid NSEntityDescription".
Da war ich letztes Jahr als Swift-Anfänger soooo stolz, endlich mal CoreData anwenden zu können - zack! Mit den letzten Änderungen alles wieder dahin. In einer Swift UI App gibt es keine Datei "AppDelegate" mehr, alles wieder anders, es funktioniert nicht mehr. Wo ist der Fehler? Hat jemand eine Idee? Vielen Dank im Voraus!
VG Arek