如何解决如果不使用SwiftUI生命周期,则无法对URL,NSUserActivity和其他外部事件使用Scene方法
我使用的是新的“纯” SwiftUI App
和Scene
结构,而不是AppDelegate
。
我的某些视图使用onOpenURL(perform:)
接受自定义URL方案和用户活动。一切都按预期进行。
但是,从Beta 6开始,Xcodes会给出以下运行时警告:
运行时:SwiftUI:如果不使用SwiftUI生命周期,则无法对URL,NSUserActivity和其他外部事件使用Scene方法。如果没有SwiftUI生命周期,则广告和处理外部事件将浪费资源,并且结果将无法预测。
我到底在做什么错? SwiftUI生命周期指的是什么?
解决方法
SwiftUI Lifecycle 是指作为场景的子项呈现的视图,即通常在应用程序主体中返回的 WindowGroup
结构。
这意味着如果您将“辅助”视图附加到场景中,例如 MacOS 的 Commands,它们将无法使用 .onContinuedUserActivity
之类的方法,并且会产生此错误。在这些情况下传达视图状态更改应改为使用 FocusedValues,其中订阅视图具有 @FocusedBinding
或 @FocusedValue
,并且发布视图注入 .focusedValue(\.someKeyPath,$interestingState)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。