【发布时间】:2021-04-15 17:45:17
【问题描述】:
我正在尝试使用实例变量但遇到了一些问题,这个movieDetail是navigationlink的目的地,idnum是从那里得到的。
struct movieDetail: View {
var idnum:Int
var mvde = testMv(idStr: String(idnum))
var body: some View {
ScrollView{
VStack{
ForEach(mvde.todos){info in
Text(info.overview)
}
}
}
.padding(.horizontal)
}
}
}
struct movieDetail_Previews: PreviewProvider {
static var previews: some View {
NavigationView{
movieDetail(idnum:24428)
}
}
}
在这个movieDetail视图中,我想使用idnum作为参数来创建一个testMv对象,同时我得到了信息:Cannot use instance member 'idnum' within property initializer; property initializers run before 'self' is available,我试图将var mvde = testMv(idStr: String(idnum))放入body部分但得到Variable 'mvde' was never mutated; consider changing to 'let' constant.
【问题讨论】:
-
您需要创建自己的自定义初始化程序,而不是使用合成的初始化程序。同样按照惯例,结构应该有大写字母,所以应该是
MovieDetail。