How to add mutiple core data managedObjectContext to Environment SwiftUI app?

I am getting this error when I run the App "Thread 1: "The fetch request's entity 0x280a444d0 'SleepStoriesCD' appears to be from a different NSManagedObjectModel than this context's"

How I am adding it to my App environment :

import SwiftUI

@main
struct MeditationApp: App {
    
    @StateObject var dataControllerStF = DataControllerStF()
    @StateObject var dataControllerMusF = DataControllerMusF()
  
    var body: some Scene {
        WindowGroup {
                NavigationView{
                    ContentView()
                }
                .environmentObject(dataControllerStF)
                .environmentObject(dataControllerMusF)
            
                .environment(\.managedObjectContext,dataControllerMusF.container.viewContext)
                .environment(\.managedObjectContext,dataControllerStF.container.viewContext)
            }
        }
    }
}

While My DataControllers are given below. These two SleepStoriesCoreData and FavoriteMusic are core data models

import Foundation
import SwiftUI
import CoreData

class DataControllerStF : ObservableObject{
    let container = NSPersistentContainer(name: "SleepStoriesCoreData")
    
    init(){
        container.loadPersistentStores{desc, error in
            if let err = error{
                print("Failed to load containerStories data: " , err.localizedDescription)
            }
        }
    }
    func addStories(id: String, lessonName: String, url: String, context: NSManagedObjectContext) {
        let stories = SleepStoriesCD(context: context)
        stories.id = id
        stories.date = Date()
        stories.lessonName = lessonName
        stories.url = url
        do {
            try context.save()
        } catch {
            let nsError = error as NSError
            fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
        }
    }
}

and

import Foundation
import SwiftUI
import CoreData

class DataControllerMusF : ObservableObject{
    let container = NSPersistentContainer(name: "FavoriteMusic")
    
    init(){
        container.loadPersistentStores{desc, error in
            if let err = error{
                print("Failed to load containerStories data: " , err.localizedDescription)
            }
        }
    }
    func addStories(id: String, lessonName: String, url: String, context: NSManagedObjectContext) {
        let stories = SleepStoriesCD(context: context)
        stories.id = id
        stories.date = Date()
        stories.lessonName = lessonName
        stories.url = url
        do {
            try context.save()
        } catch {
            let nsError = error as NSError
            fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
        }
    }
}

I have searched on google but didn't find any matching solution

Upvotes: 0

Views: 46

Answers (0)

Related Questions