环境中的上下文未连接到持久存储协调器:

问题描述 投票:0回答:0

我正在尝试从 Swift 中的一个类访问 CoreData(不是从视图中 - 在视图中使用环境对象工作正常)。我尝试了多种方法,但都没有用。

我已经实现了一个 DataController,我想在视图和提到的类中都使用它:

import Foundation
import CoreData

class DataController: ObservableObject {

let container = NSPersistentContainer(name: "Model")

init(){
    container.loadPersistentStores { description, error in
        if let error = error{
            print("Core Data failed to load \(error.localizedDescription)")
        }
    }
}

}

在应用程序初始化期间,类中的函数被调用,尤其是从 WeatherKit、HealthKit 和 CoreData 读取数据。在那个类中,我有函数“readCoreData”:

    func readCoreData(){
    
    var data = [ShoeEntity]()
    var controller = DataController()
    let moc = controller.container.viewContext
    let request = ShoeEntity.fetchRequest()
    
    do{
        
        data = try moc.fetch(request)
        print (data.count)
        
    }catch{
        print("Fetch failed")
    }
}

如果调用这个函数,我没有从核心数据中获取数据,而是在控制台中出现以下错误:

环境中的上下文未连接到持久存储协调器:

我认为这是因为我需要使用环境对象,但我不确定如何在课堂上这样做。

有人可以帮助我吗?

提前谢谢你。

swift core-data
© www.soinside.com 2019 - 2024. All rights reserved.