Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?
Posted
技术标签:
【中文标题】Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?【英文标题】:Swifui: MacOS App: Fetching Core Data in ContentView OK, but how to use the result from AppDelegate? 【发布时间】:2020-08-24 14:11:19 【问题描述】:对于 MacOS 应用程序,使用 Xcode 11.6 (11E708)、SwiftUI,我在 ContentView.swift
中生成了数据。但我不能在AppDelegate.swift
中使用这些数据:
构建成功,但print(contentView.order.item)
(请参见下文)产生此消息:
线程 1:致命错误:未找到 Order 类型的 ObservableObject。一种 订单的 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)
...
【问题讨论】:
【参考方案1】:如果将Order
用作@EnvironmentObject
,则需要将Order
注入环境:
let order = Order() // declare it once
let contentView = ContentView().environmentObject(order) // inject to the environment
【讨论】:
以上是关于Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?的主要内容,如果未能解决你的问题,请参考以下文章
如何删除 macOS SwiftUI App 中的“新窗口”选项?
SwiftUI MacOS App AVPlayer 不适用于视频 URL
Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?
macOS Document App SwiftUI 项目上的 NSPersistentDocument FetchRequest 扭曲属性崩溃