gpt4 book ai didi

swift - 更新从后台线程更改 UI 的变量 - SWIFTUI

转载 作者:行者123 更新时间:2023-12-01 23:54:22 27 4
gpt4 key购买 nike

通知主线程后台线程操作已完成的正确方法是什么?

我现在收到这个错误:

Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates.

这里是我进行后台队列操作的地方:

class ImageLoader: ObservableObject {
//the thumbnail
@Published var image: UIImage?

//value to verify everything is loaded
@Published var isLoaded = false


private(set) var isLoading = false


func load() {

let dispatchQueue = DispatchQueue(label: "ThumbNailMaker", qos: .background)

dispatchQueue.async {
self.removeChar()
self.createThumbnailOfVideoFromRemoteUrl()
self.isLoaded = true //<--------------------- Here the error appears
}

最佳答案

尝试将 self.isLoaded = true 替换为

DispatchQueue.main.async { self.isLoaded = true }

关于swift - 更新从后台线程更改 UI 的变量 - SWIFTUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63014621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com