在主要 swift 项目呈现的 swiftUI 视图中使用核心数据

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

是否可以在主要是 Swift 项目的 SwiftUI 视图中使用 Core Data?我问这个问题是因为当我尝试将托管对象上下文从我的 Swift 项目获取到我的 SwiftUI 视图时,所有示例都说它需要首先在顶级 SwiftUI 视图上设置,如下所示:

WindowGroup {
    ContentView()
        .environment(\.managedObjectContext, DataController.shared.container.viewContext)
        .environmentObject(coreDataViewModel)
}

不幸的是,我没有顶级 SwiftUI 视图,因此这会导致问题。是否有另一种方法可以在 SwiftUI 视图上设置 MOC,或者我是否必须将初始 Swift 视图嵌套在 SwiftUI 视图中才能使用核心数据?

swift swiftui core-data
1个回答
0
投票

是的,您可以混合 UIKit 和 SwiftUI 或任何其他界面。

Swift 是他们共享的语言。

“顶层”可以是第一个 SwiftUI 视图

AnySwiftUIView()
    .environment(\.managedObjectContext, DataController.shared.container.viewContext)

请注意,您还可以使用

@ObservedObject
来监视作为参数传入的任何 CoreData 对象。

如果视图需要访问它,您只需将其放入环境中。

© www.soinside.com 2019 - 2024. All rights reserved.