0

我刚刚在我的项目中添加了一个新的应用程序剪辑,并尝试在我的模拟器上运行它。每次我这样做,我都会收到这个错误:

线程 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())
    }
}

不确定究竟是什么没有正确指定,但是当我在应用程序剪辑之外(作为主应用程序的一部分)运行此视图时,一切运行正常。让环境对象与应用程序剪辑(或其他一般目标)一起工作是否有技巧?

4

1 回答 1

2

查找创建的所有位置Calculator_MainView()(很可能是 SceneDelegate.swift),并执行与 PreviewProvider 中相同的操作

Calculator_MainView().environmentObject(GlobalEnvironment())
于 2020-07-27T03:32:11.000 回答