【发布时间】:2022-01-10 18:58:20
【问题描述】:
我通过以下方式将NSManagedObjectContext 注入到我的视图层次结构中。
@main
struct MyApp: App {
var persistence: Persistence
var body: some Scene {
WindowGroup {
ContentView()
.environment(\.managedObjectContext, persistence.container.viewContext)
}
}
}
在用户设置中,我可以打开/关闭 CloudKit 同步机制。 Persistence 实例中的 viewContext 将相应地重新初始化。这工作正常。但我的完整视图层次结构仍在使用旧的NSManagedObjectContext 实例。
有什么方法可以更新(重新注入)环境值或使用新实例化的viewContext 重新加载整个视图层次结构?
【问题讨论】:
-
不知道这是否可行,但如果你让
Persistence成为一个带有'static let shared = Persistence()' 的单例,而不是在环境中传递它,将其称为在你的视图中有一个@ObservedObject?
标签: core-data swiftui cloudkit