swiftui - fatal error : @SceneStorage is only for use with SwiftUI App Lifecycle. : file SwiftUI, 第 0 行

标签 swiftui ios14 xcode12

我正在尝试使用 iOS 14“SceneStorage”的新属性包装器,尽管它会产生此错误:

Fatal error: @SceneStorage is only for use with SwiftUI App Lifecycle.: file SwiftUI, line 0

这是我的代码:

struct ContentView: View {
    @SceneStorage("isLoggedIn") var isLoggedIn = true
    
    var body: some View {
        Text("Hello, World!).onAppear {
            print($isLoggedIn)
        }
    }
}

已更新... 谢谢,@Asperi! 确保将生命周期设置为SwiftUI应用程序

enter image description here

最佳答案

与 Xcode 12/iOS 14/SwiftUI 生命周期配合良好

看起来您的项目使用了 SwiftUI 1.0 AppDelegate/SceneDelegate(又名 UIKit 生命周期)

在 SwiftUI 生命周期中,您的应用程序主应该类似于

@main
struct YourAppName: App {
    var body: some Scene {
        WindowGroup {       // << this introduces Scene, needed for SceneStorage
            ContentView()
        }
    }
}

关于swiftui - fatal error : @SceneStorage is only for use with SwiftUI App Lifecycle. : file SwiftUI, 第 0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62714326/

相关文章:

xcode - 升级到 XCode12.5 后不再构建 React Native App

swift - 如何使用 SwiftUI 将按钮固定在 View 底部?

ios - 有什么方法可以避免 SwiftUI GeometryReader 阻止嵌套 View 在 List 内增长?

ios - 如何在 SwiftUI 列表中显示 MPMediaItem 图稿?

ios - 在 ios 14 中,文本字段边框样式无法正常工作

ios14 - 如何关闭 iOS 14 datePicker 模态?

Xcode 12 更新破坏了 Pod 和产品

swiftui - 如何为 SwiftUI ViewRepresentable 自定义 MKMapView 委托(delegate)操作?

swift - iOS 14 Widget 每天自动刷新

swiftUI - 强制屏幕横向后无法关闭模式屏幕