You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI报错:Cannot find '$PlayerList' in scope 问题求助

问题解决:Cannot find '$PlayerList' in scope

错误原因

你在TextField的绑定代码里直接用了类名PlayerList,但SwiftUI的双向绑定需要作用于ObservableObject的实例,而不是类本身。你已经在View里声明了@StateObject var viewModel: PlayerList = PlayerList(),所以应该用这个viewModel实例来访问属性。

修正后的代码

import SwiftUI

class PlayerList: ObservableObject {
    // 遵循Swift命名规范,属性名小写开头
    @Published var players = [
        Player(name: ""),
        Player(name: ""),
    ]
}

struct Player: Identifiable {
    var name: String
    var id = UUID()
}

struct ViewJouer: View {
    @StateObject var viewModel: PlayerList = PlayerList()

    var body: some View {
        VStack {
            // 改为访问viewModel实例的players数组
            TextField("Player 1", text: $viewModel.players[0].name)
        }
    }
}

struct ViewJouer_Previews: PreviewProvider {
    static var previews: some View {
        ViewJouer()
    }
}

关键修改点

  • 把绑定路径从$PlayerList.Players[0].name改成$viewModel.players[0].name,使用你创建的viewModel实例
  • 调整了属性名Players为players,符合Swift的命名规范(类/结构体名大驼峰,属性/变量名小驼峰)

内容的提问来源于stack exchange,提问作者josé

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:45:43