【发布时间】:2020-12-19 01:06:36
【问题描述】:
我正在尝试从后台运行循环中获取数据到主视图。
我可以看到计数器会增加(在终端中打印),但视图不会刷新当前值。每次显示值仍然为零。
我的代码 sn-p 如下:
struct ContentView: View {
@EnvironmentObject var loop : Loop
var body: some View {
VStack {
Text("Content View")
LoopView()
}
}
}
struct LoopView: View {
@EnvironmentObject var loop : Loop
var body: some View {
VStack {
Text("Loop View")
HStack {
Text("i = ")
Text("\(loop.i)")
}
}
}
}
class Loop: ObservableObject {
@Published var i: Int
func startLoop() {
while true {
print("i = \(self.i)")
self.i += 1
sleep(1)
}
}
init() {
DispatchQueue.main.async {
self.startLoop()
}
}
}
【问题讨论】:
标签: swift mvvm swiftui observable