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目前更易于访问)