编辑添加了显示变量声明的源代码
我正在尝试初始化一个视图模型属性,它是一个 @ObservedObject
@ObservedObject private var viewmodel : ExpenseListViewModel
我想使用存储库初始化视图模型,该存储库将接受 ManagedObjectContext 作为构造函数中的参数
由于 viewmodel 有一个 prperty 包装器,因此也不允许将其创建为计算属性。
当我尝试在 init 中初始化存储库和视图模型时,我在初始化之前使用了一个 self
struct ContentView: View {
@Environment(\.managedObjectContext) private var moc
private (set) var repo: Repository
@ObservedObject private var viewmodel : ExpenseListViewModel
init() {
//let repository = CoreDataRepository(Context: moc)
repo = CoreDataRepository(Context: self.moc)
self.viewmodel = .init(repository: repo)
}
var body: some View {
Text(viewmodel.Expenses[0].Name ).onAppear(perform: viewmodel.getExpenses )
}
}