Swift 如何在新对象的属性上设置didSet

Swift 如何在新对象的属性上设置didSet,swift,Swift,我有以下代码: class Bar: UIViewController { lazy var foo = Foo() foo.bar { didSet { barLabel.text = "\(foo.bar)" } } 但是,我在foo.bar上得到一个预期声明错误。如何解决此错误?willSet,didSet,get和set构成 您可以使用以下命令声明变量: lazy var foo=foo() 它还将变量初始化为类型为Foo 要添加didSet,

我有以下代码:

class Bar: UIViewController {
  lazy var foo = Foo()

  foo.bar {
    didSet {
      barLabel.text = "\(foo.bar)"
    }
  }

但是,我在
foo.bar
上得到一个
预期声明
错误。如何解决此错误?

willSet
didSet
get
set
构成

您可以使用以下命令声明变量:

lazy var foo=foo()

它还将变量初始化为类型为
Foo

要添加
didSet
,您需要更改您的声明。一种可能的方法是:

var foo:foo=foo(){ 迪塞特{ barLabel.text=“\(foo.bar)” } }
但是,只有当变量
foo
更改时,才会触发该命令。如果希望在
foo
变量的
bar
属性更改时触发,则需要添加
foo

的定义,不能将
didSet
添加到类似的不相关类中。你在寻找类似可观察模式的东西。我建议您观看WWDC 2019视频(即使您不使用Combine,这在概念上与RxSwift类似,RxSwift目前更易于访问)