EDITは、変数の宣言を示すソースコードを追加しました
@ObservedObject であるビュー モデル プロパティを初期化しようとしています。
@ObservedObject private var viewmodel : ExpenseListViewModel
コンストラクターのパラメーターとして ManagedObjectContext を受け入れるリポジトリでビュー モデルを初期化したい
ビューモデルにはプロパティラッパーがあるため、計算されたプロパティとして作成することもできません。
初期化でリポジトリとビューモデルを初期化しようとすると、初期化される前に自己が使用されます
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 )
}
}