我正在尝试从 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")
}
}
如果调用这个函数,我没有从核心数据中获取数据,而是在控制台中出现以下错误:
环境中的上下文未连接到持久存储协调器:
我认为这是因为我需要使用环境对象,但我不确定如何在课堂上这样做。
有人可以帮助我吗?
提前谢谢你。