【发布时间】:2021-02-11 14:40:28
【问题描述】:
我做了一个使用 Firebase 云消息传递和新的 SwiftUI 2 应用生命周期的小型原型。我通过添加了一个自定义 AppDelegate
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate 并禁用了 FCM 工作的方法调配。一切都按预期进行。
今天一位同事问我,是否可以通过UIApplication.shared.delegate 获得该委托对象。所以我试了一下,发现似乎有两个不同的 AppDelegate 对象:
po delegate 打印:
<MyProject.AppDelegate: 0x6000009183c0>
po UIApplication.shared.delegate 打印在哪里:
▿ Optional<UIApplicationDelegate>
▿ some : <SwiftUI.AppDelegate: 0x600000b58ca0>
现在我想知道访问 AppDelegate 的正确方法是什么?是否应该通过@EnvironmentalObject 获取它并将其传递给所有视图?还是通过UIApplication 使用老式方式?
此外,我想了解为什么我最终会得到两个 AppDelegate。
提前致谢
【问题讨论】:
标签: ios swiftui appdelegate