我目前正在使用@MainActor的一个函数在我的SwiftUI应用程序中发布对我的UI的更改。不幸的是,该属性只在docatch块的do部分的主队列上调度UI更新。当我在catch块(即errorMessage)中发布UI更改时,它会说“不允许从后台线程发布更改”,尽管我将整个函数包装在@MainActor属性中。
有办法解决这个问题吗?@MainActor不应该在catch语句中应用UI更改吗?我应该用它吗。收到(在:)错误消息?
@MainActor
func signUp(creds: CredentialDetails) async {
do {
let authDataResult = try await Auth.auth().createUser(withEmail: creds.email, password: creds.password)
} catch {
print("There was an issue when trying to sign in: \(error)")
self.errorMessage = error.localizedDescription
}
}