【发布时间】:2020-08-29 05:55:51
【问题描述】:
我正在尝试将数据传递到 ViewModel 并得到“从初始化程序返回而不初始化所有存储的属性”
我在 ViewModel 中的 init(entry:Entry) 之后执行的任何操作都会出错。
我首先像这样从 MainView 传递数据:
struct MainView: View {
@State var entry = Entry()
// inputting the data
TextField("Beg Value", text: self.$entry.a)
// passing to next view
NavigationLink(
destination: ShowView( entry: entry ),
label: {Image(systemName: "arrow.clockwise") })
}
这是获取数据的视图。
struct ShowView: View {
var entry: Entry
@ObservedObject var showVM: ShowViewModel
init( entry:Entry ) {
self.entry = entry
self.showVM = ShowViewModel( entry: entry )
}
}
以及初始化数据后出现错误的 ViewModel。我尝试了很多变种。
class ShowViewModel: ObservableObject {
var entry: Entry
init(entry: Entry) {
self.entry = entry
}
init(){
print("here") \\ Return from initializer without initializing all stored properties
}
}
和入口结构。我也尝试过上课。
struct Entry {
var month: Date = Date()
var a:String = "1"
var b:String = "2"
var c:String = "3"
var d:String = "4"
var e:String = "5"
var f: String = ""
}
谢谢。
【问题讨论】:
-
不使用为什么还要第二个init?
标签: swiftui