小编06f*_*f82的帖子

表单和列表的 SwiftUI 内存泄漏

我正在开发简单的待办事项应用程序SwiftUI。在我的测试中,我注意到我的视图模型从不调用 deinit 并导致内存使用量线性增加。

我使用以下代码重现了相同的行为:

struct ContentView: View {
    @State private var isPresented = false

    var body: some View {
        Button("open") {
            self.isPresented = true
        }
        .sheet(isPresented: $isPresented) {
            SheetView()
        }
    }
}

struct SheetView: View {
    @ObservedObject var model: ViewModel

    init() {
        model = ViewModel()
    }

    var body: some View {
        Form {
            Toggle("Toggle Me", isOn: $model.isOn)
        }
    }
}

class ViewModel: ObservableObject {
    @Published var isOn = false

    deinit {
        print("ViewModel deinit ")
    }
}
Run Code Online (Sandbox Code Playgroud)

当工作表被解除时,模型对象永远不会取消。如果我用 VStack …

memory-leaks ios swiftui

9
推荐指数
1
解决办法
1051
查看次数

标签 统计

ios ×1

memory-leaks ×1

swiftui ×1