Swiftui Swifui:MacOS应用程序:在ContentView中获取核心数据可以,但如何使用AppDelegate的结果?

Swiftui Swifui:MacOS应用程序:在ContentView中获取核心数据可以,但如何使用AppDelegate的结果?,swiftui,observableobject,environmentobject,Swiftui,Observableobject,Environmentobject,对于MacOS应用程序,使用Xcode 11.6(11E708)SwiftUI,我可以在ContentView.swift中生成数据。但是我不能在AppDelegate.swift中使用这些数据: 生成成功,但打印(contentView.order.item)(请参见下文)会生成以下消息: 线程1:致命错误:未找到Order类型的ObservieObject。A. Order的View.environmentObject(:)可能作为的祖先丢失 这是一种观点 我错过了什么 在ContentVi

对于MacOS应用程序,使用Xcode 11.6(11E708)SwiftUI,我可以在
ContentView.swift
中生成数据。但是我不能在AppDelegate.swift中使用这些数据:

生成成功,但打印(contentView.order.item)(请参见下文)会生成以下消息:

线程1:致命错误:未找到Order类型的ObservieObject。A. Order的View.environmentObject(:)可能作为的祖先丢失 这是一种观点

我错过了什么

在ContentView中。swift:

import SwiftUI
public class Order: ObservableObject {
    @Published var item = "Hello"
}
...
@EnvironmentObject var order: Order
...
func applicationDidFinishLaunching(_ aNotification: Notification) {
    ... 
    let contentView = ContentView()
    print(contentView.order.item)
    ...
在AppDelegate.swift中:

import SwiftUI
public class Order: ObservableObject {
    @Published var item = "Hello"
}
...
@EnvironmentObject var order: Order
...
func applicationDidFinishLaunching(_ aNotification: Notification) {
    ... 
    let contentView = ContentView()
    print(contentView.order.item)
    ...

如果将环境用作
@EnvironmentObject
,则需要将
顺序
注入到环境中:

let order = Order() // declare it once
let contentView = ContentView().environmentObject(order) // inject to the environment

如果将环境用作
@EnvironmentObject
,则需要将
顺序
注入到环境中:

let order = Order() // declare it once
let contentView = ContentView().environmentObject(order) // inject to the environment