首页 > 解决方案 > 致命错误:@SceneStorage 仅用于 SwiftUI 应用程序生命周期。:文件 SwiftUI,第 0 行

问题描述

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

致命错误:@SceneStorage 仅用于 SwiftUI 应用程序生命周期。:文件 SwiftUI,第 0 行

这是我的代码:

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

更新了...... 谢谢,@Asperi!确保将Life Cycle设置为SwiftUI App

在此处输入图像描述

标签: swiftuiios14xcode12

解决方案


适用于 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()
        }
    }
}

推荐阅读