【发布时间】:2020-01-23 19:33:51
【问题描述】:
我最近开始研究 SwiftUI,并浏览了一些推荐基于状态交换视图的教程(参见下面的 sn-p)。但是,我在调试时注意到,即使是最基本的 UI,内存使用也会慢慢上升。这可能只是缺乏知识,但是以这种方式与 SwiftUI 交换视图是错误的吗?
Version 11.0 (11A420a) - iOS 13
// Memory Leak Test
struct ContentView: View {
@State private var toggle = false
func cycleViews() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
self.toggle = !self.toggle
self.cycleViews()
}
}
var body: some View {
Group {
if toggle {
ViewA()
} else {
ViewB()
}
}.onAppear {
self.cycleViews()
}
}
}
struct ViewA: View {
var body: some View {
VStack {
Text("Some Content")
Text("Some Content")
Text("Some Content")
Text("Some Content")
Text("Some Content")
}
}
}
struct ViewB: View {
var body: some View {
List {
Text("Some Content")
Text("Some Content")
Text("Some Content")
Text("Some Content")
Text("Some Content")
}
}
}
【问题讨论】:
标签: swift user-interface memory-leaks swiftui