[英]SwiftUI: Cannot find type in scope
我无法想出一个很好的方法来问这个问题,所以我将展示一个简单的例子。 我有一个 model,一个@ObservableObject
,它包含一个结构:
class MyModel: ObservableObject {
@Published var allData: [TheData] = []
struct TheData: Hashable {
let thePosition: Int
let theChar: Character
}
func initState() {
let allChars = Array("abd")
for (index, element) in allChars.enumerated() {
allData.append(TheData(thePosition: index, theChar: element))
}
}
}
在我看来,我正试图从两个不同的结构到达 model(由于烦人The compiler is unable to type-check this expression in reasonable time..
),但我得到一个错误:
struct ContentView: View {
@StateObject var theModel = MyModel()
var body: some View {
VStack {
Image(systemName: "globe")
Text("Hello, world!")
HStack {
ForEach(theModel.allData, id: \.self) { theElement in
letterAcross(myLetter: theElement)
}
}
}
.onAppear {
theModel.initState()
}
.environmentObject(theModel)
}
}
struct letterAcross: View {
@EnvironmentObject var theModel: MyModel
var myLetter: TheData // <----- the ERROR is here
var body: some View {
HStack {
Text(String(myLetter.theChar))
}
}
}
错误是Cannot find type TheData in scope
。 看来我在某种程度上弄乱了@StateObject
和@EnvironmentObject
。 这样做的正确方法是什么?
这是一个嵌套类型,所以它是MyModel.TheData
:
var myLetter: MyModel.TheData
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.