如何将发布的整数变量的可观察对象绑定到 SwiftUI 中的文本字段?

How to bind an observable objects published integer variable to a textField in SwiftUI?

我有一个视图模型 class 像这样:

class SharedViewModel: ObservableObject {
    @Published var objectHeight: Int? = nil
}

我正在尝试绑定以将变量绑定到具有数字格式化程序的文本字段,就像这样(变量需要在整个过程中使用,因此在当前视图中,视图模型是一个 @EnvironmentObject):

TextField("Height", value: $sharedViewModel.$objectHeight, formatter: NumberFormatter()

但当我在模拟器中按下回车键时出现此错误:无法将类型“__NSCFNumber”的值 (0x7fd9d6830fa8) 转换为 'Combine.Published<Swift.Optional<Swift.Int>>.Publisher' (0x7fd9d5197d10)。

编辑:使用可选的 Int 作为状态变量工作正常它是 Published 标签,同时使用 Observable 对象作为 EnvironmentObject 似乎是导致问题的原因。但是,我在 EnvironmentObject 中需要这个变量,因为它在多个视图中使用。

使其成为非可选的并删除 $objectHeight 之前的 $。只留下 ViewModel 一个

$sharedViewModel.objectHeight