【发布时间】:2022-11-17 08:38:11
【问题描述】:
我将 @MainActor 与视图模型类一起使用,如下面的代码所示,当我尝试为模型添加环境密钥时,出现以下错误: “在同步非隔离上下文中调用主要参与者隔离初始化器‘init()’” 在我从类中删除@MainActor 之前,代码不会编译。 是否可以将 @MainActor 和 EnvironmentKey 用于同一类。
查看模型类:
extension HomeView {
@MainActor
internal final class ViewModel: ObservableObject {
// More code here...
}
}
视图模型的环境键:
struct HomeViewModelKey: EnvironmentKey {
static var defaultValue = HomeView.ViewModel()
}
extension EnvironmentValues {
var homeViewModel: HomeView.ViewModel {
get { self[HomeViewModelKey.self] }
set { self[HomeViewModelKey.self] = newValue }
}
}
【问题讨论】:
标签: swift swiftui swiftui-environment mainactor