我的类符合ObservableObject,但不知何故,swift编译器并不这么认为

yrdbyhpb  于 2022-10-31  发布在  Swift
关注(0)|答案(1)|浏览(99)
protocol ErrorableViewProtocol: View {
    var error: Error? { get set }
}

class ObservableError: ObservableObject {
    @Published var error: Error?
}

struct ErrorableView<T: ErrorableViewProtocol>: View {
    var errorable: T

    var body: some View {
        if let error = errorable.error {
            ErrorView(error: error)
        } else {
            errorable
        }
    }
}

我在哪里偏离了正道?

p5cysglq

p5cysglq1#

ObservableError符合ObservableObject。你不能说Optional<ObservableError>(又名ObservableError?)也是这样。当你使用@StateObject时,你应该总是在同一个结构中示例化类。
但是,当您要从另一个结构传入对象时,请使用@ObservedObject

相关问题