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

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

解决SwiftUI中“Cannot find 'ChoiceTextView' in scope”错误

针对你遇到的自定义视图无法被识别的问题,按以下步骤排查:

  • 确认文件归属:确保定义ChoiceTextView的Swift文件和调用它的文件属于同一个项目目标,没有被误放到测试目标或者单独的框架中。在Codecademy的环境里,要保证两个文件都在当前任务的项目结构内。
  • 检查拼写与大小写:Swift是大小写敏感语言,核对调用代码里的ChoiceTextView和定义的结构体名称完全一致,没有拼写错误。
  • 强制编译项目:有时候自动编译未触发,导致自定义结构体未被编译器识别。手动编译(Xcode按Cmd+B,在线编辑器可尝试刷新或重新运行)后再测试。
  • 确认作用域:保证ChoiceTextView是定义在全局作用域,没有被嵌套在其他结构体、类或函数内部(你提供的代码里是全局的,这一点没问题,但如果后续修改过要注意)。

你的自定义视图代码:

import SwiftUI

struct ChoiceTextView: View {
    let choiceText: String
    
    let accentColor = Color(red: 48/255, green: 105/255, blue: 240/255)
    
    var body: some View {
        Text(choiceText)
            .font(.body)
            .bold()
            .multilineTextAlignment(.center)
            .padding()
            .border(accentColor, width: 4)
    }
}

struct ChoiceTextView_Previews: PreviewProvider {
    static var previews: some View {
        ChoiceTextView(choiceText: "Choice Text!")
    }
}

报错的调用代码:

Button(action: { print("Tapped on Choice 1")},
label:{ChoiceTextView(choiceText: question.possibleAnswers[0])
                    })

你可以先简化调用代码做测试,排除参数影响:

Button(action: { print("Tapped on Choice 1")},
       label: { ChoiceTextView(choiceText: "Test Choice") })

如果这样能正常运行,再去排查question.possibleAnswers的相关问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:20:34