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
相关产品推荐
相关产品推荐

