我刚刚在项目中添加了一个新的应用程序剪辑,并试图在模拟器上运行它。每次这样做,都会出现此错误:
线程1:致命错误:否GlobalEnvironment类型的ObservableObject 找到了。用于GlobalEnvironment的View.environmentObject(_ :)可能是 作为此视图的祖先而消失。
我知道,以前在这里已经解决了很多次,但是在我的项目中,我将环境对象文件目标成员资格设置为我的主应用程序和我的应用程序剪辑,并且我的应用程序剪辑的代码包括以下:
import SwiftUI
struct Calculator_MainView: View {
@EnvironmentObject var env: GlobalEnvironment
var body: some View {
if env.calcStyle == 0 {
ContentView()
else {
EmptyView()
}
}
}
struct Calculator_MainView_Previews: PreviewProvider {
static var previews: some View {
Calculator_MainView().environmentObject(GlobalEnvironment())
}
}
不确定到底是什么没有正确指定,但是当我在应用程序剪辑之外(作为主应用程序的一部分)运行此视图时,一切运行正常。使环境对象与应用程序剪辑(或一般而言,其他目标)一起工作是否有技巧?
答案 0 :(得分:2)
查找所有创建Calculator_MainView()
的位置(很可能是SceneDelegate.swift),并与PreviewProvider中的功能相同
Calculator_MainView().environmentObject(GlobalEnvironment())