当按下按钮时,一个玩家被添加到游戏中,我想通过视图模型观察游戏中的变化。当我按下按钮时,计数器没有改变。
就好像我需要 中的游戏既是ContentViewModel又@ObservedObject是@Published。
有人可以帮助我了解为什么设置错误以及如何修复它的基本原理吗?
import SwiftUI
import Combine
class Game: ObservableObject {
@Published var players: [String] = []
func addPlayer(_ player: String) {
players.append(player)
}
}
class ContentViewModel: ObservableObject {
@Published var game: Game {
didSet {
subscription = game.objectWillChange.sink { [weak self] _ in
self?.objectWillChange.send()
}
}
}
var subscription: AnyCancellable?
init(game: Game) {
self.game = game
}
}
struct ContentView: View {
@ObservedObject var viewModel: ContentViewModel
var body: some View {
Text("Num …Run Code Online (Sandbox Code Playgroud)