如何解决SwiftUI 的列表泄漏内存
我在使用 SwiftUI 的 List
时注意到一个问题,当我构建行视图时,我创建了一个如下所示的视图模型:
struct MyListView: View {
var body: some View {
NavigationView {
List(models) { model in
RowView(viewmodel: Rowviewmodel(model: models))
}
.navigationTitle("Landmarks")
}
}
列表有多大并不重要,我的视图模型永远不会被释放,我不确定视图实际上被回收到哪个扩展,但我可以通过使用 Xcode 上的内存调试器看到,当我滚动时并且构建了更多视图,分配了越来越多的视图模型并保存在内存中,这就是我的行视图的样子:
struct RowView: View {
var viewmodel: Rowviewmodel
var body: some View {
HStack {
Text(viewmodel.title)
Spacer()
}
}
}
和我的视图模型:
class Rowviewmodel {
private let model: Model
init(model: model) {
self.model = model
}
var title: String {
model.title
}
}
我在使用 @Observedobject
之前也尝试过,但这并没有什么不同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。