我正在使用各种视图模型对象创建一个 SwiftUI 应用程序来支持视图。在某些视图上,用户可以在不保存更改的情况下离开,例如“取消”,如果底层视图模型有任何更改,我想提示确认。一些视图模型具有许多可以设置/更改的属性,因此我试图避免必须更改每个 @Published 属性以具有didChange
捕获更改的方法,因为这将是很多丑陋的管道,感觉没有必要。由于对象的订阅者可以检测到更改,我想知道是否有一种方法可以让我自己挂钩,以便我可以对对象的已发布更改做出反应,然后设置hasChanges
标志。
非常感谢任何帮助/建议。
class MySimpleViewModel: ObservableObject {
@Published var firstName: String
@Published var lastName: String
@Published var age: Int
// I want to be able to set this automatically by hooking into the pub/sub pipeline.
var hasChanges: Bool = false
init (firstName: String, lastName: String, age: Int) {
self.firstName = firstName
self.lastName = lastName
self.age = age
}
}