1

对于 MacOS 应用程序,使用 Xcode 11.6 (11E708)、SwiftUI,我在ContentView.swift. 但我不能在里面使用这些数据AppDelegate.swift

构建成功,但print(contentView.order.item)(请参见下文)产生此消息:

线程 1:致命错误:未找到 Order 类型的 ObservableObject。作为该视图的祖先,Order 的 View.environmentObject(_:) 可能会丢失。

我错过了什么?

在 ContentView.swift 中:

import SwiftUI
public class Order: ObservableObject {
    @Published var item = "Hello"
}
...
@EnvironmentObject var order: Order
...

在 AppDelegate.swift 中:

func applicationDidFinishLaunching(_ aNotification: Notification) {
    ... 
    let contentView = ContentView()
    print(contentView.order.item)
    ...
4

1 回答 1

0

Order如果将其用作:您需要注入环境@EnvironmentObject

let order = Order() // declare it once
let contentView = ContentView().environmentObject(order) // inject to the environment
于 2020-08-24T14:13:37.017 回答