SwiftUI可观察对象未观察到

时间:2019-12-16 05:42:29

标签: swift xcode crash observable swiftui

在我最新的学习SwiftUI的项目中,我在名为UserData的文件中创建了一个Observable对象:

this

我在SceneDelgate中设置了环境变量:

final class UserData: ObservableObject {
    @Published var data = jsonData
}

并在相关文件中声明它:

window.rootViewController = UIHostingController(rootView: dataList().environmentObject(UserData()))

但我明白了:

“无法预览文件,Data.app可能已崩溃”

检查崩溃报告,似乎我的代码找不到UserData。但是,我相信我已经采取了使其可观察的所有必要步骤(因为这基本上是从Apple教程复制并粘贴的)。怎么了?

2 个答案:

答案 0 :(得分:0)

我认为您的实时预览可能会崩溃

  struct dataList_Previews: PreviewProvider {
    static var previews: some View {
        dataList().environmentObject(UserData())
    }
}

答案 1 :(得分:0)

使用EnvironmentObject并想在实时预览中进行测试时,您需要像这样手动设置对象:

struct dataList_Previews: PreviewProvider {
    static var previews: some View {
        dataList().environmentObject(UserData()) // Your env object
    }
}