我有一个符合@ObservableObject 协议的类,并从它创建了一个子类,它有自己的变量,带有@Published 属性包装器来管理状态。
使用子类时似乎忽略了@published 属性包装器。有谁知道这是否是预期行为以及是否有解决方法?
我正在运行 iOS 13 Beta 8 和 xCode Beta 6。
这是我所看到的一个例子。更新MyTestObjectText 视图上的 TextField 时,会使用 aString 值正确更新。如果我更新MyInheritedObjectTextField,则不会在 Text 视图中更新 anotherString 值。
import SwiftUI
class MyTestObject: ObservableObject {
@Published var aString: String = ""
}
class MyInheritedObject: MyTestObject {
@Published var anotherString: String = ""
}
struct TestObserverWithSheet: View {
@ObservedObject var myTestObject = MyInheritedObject()
@ObservedObject var myInheritedObject = MyInheritedObject()
var body: some View {
NavigationView {
VStack(alignment: .leading) {
TextField("Update aString", text: self.$myTestObject.aString) …Run Code Online (Sandbox Code Playgroud)