微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何将可观察对象发布的整数变量绑定到 SwiftUI 中的 textField?

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

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

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

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

但是当我在模拟器中按下 Enter 键时出现此错误:无法将类型 '__NSCFNumber' (0x7fd9d6830fa8) 的值转换为 'Combine.Published>.Publisher' (0x7fd9d5197d10 ).

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

解决方法

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

$sharedViewModel.objectHeight

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。