小编Sha*_*awn的帖子

SwiftUI 观察已发布对象的已发布对象

当按下按钮时,一个玩家被添加到游戏中,我想通过视图模型观察游戏中的变化。当我按下按钮时,计数器没有改变。

就好像我需要 中的游戏既是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)

swiftui combine

4
推荐指数
1
解决办法
5153
查看次数

标签 统计

combine ×1

swiftui ×1