相关疑难解决方法(0)

@Published 属性包装器不适用于 ObservableObject 的子类

我有一个符合@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)

inheritance ios swift ios13 swiftui

30
推荐指数
2
解决办法
6870
查看次数

标签 统计

inheritance ×1

ios ×1

ios13 ×1

swift ×1

swiftui ×1