Task.detached 在初始化时崩溃

问题描述 投票:0回答:1

这个空应用程序在加载时崩溃。我试图在应用程序加载时异步执行一个函数,但它不断崩溃。我正在使用 Swift 5.5 运行 macOS v11 (Big Sur) 和 Xcode 13,但找不到问题所在。

import SwiftUI

@main
struct TestApp: App {

    init() {
        Controller.shared.load()
    }

    var body: some Scene {
        WindowGroup {
            VStack {
                Text("Hello")
            }
        }
    }
}

class Controller: ObservableObject {

    static let shared = Controller()

    @Published public var loaded = false
    @Published public var processing = false

    func load() {
        Task.detached {
            print("Hello")
        }
    }
}
asynchronous swiftui task
1个回答
0
投票

在 SwiftUI 中,它只是

.task
而不是
Task {}
并且不需要任何对象,例如

import SwiftUI

@main
struct TestApp: App {

//    init() {
//        Controller.shared.load()
//    }

    var body: some Scene {
        WindowGroup {
            VStack {
                Text("Hello")
                .task {
                    print("Hello")
                }
            }
        }
    }
}

//class Controller: ObservableObject {
//
//    static let shared = Controller()
//
//    @Published public var loaded = false
//    @Published public var processing = false

//    func load() {
//        Task.detached {
//            print("Hello")
//        }
//    }
//}
© www.soinside.com 2019 - 2024. All rights reserved.