我通常会看到教程,特别是在Firebase应用程序上,他们在其中使用 DidSet ,但是我不确定为什么我们应该使用它代替 ViewDidLoad ,什么时候最好使用他们吗?
var user: User? {
didSet {
observeUser()
}
}
答案 0 :(得分:2)
这就像是属性值的观察者,假设您有一个tableView,该数组具有作为数据源的数组,可以在长代码中的任何位置进行更改,则可以这样做
var tableArr:[String]=[]
{
didSet {
self.tableView.reloadData()
}
}
而不是将每次更改写入重新加载行
答案 1 :(得分:1)
问题是您不知道事情发生的顺序。假设user
可以设置某种方式,并且我们要确保我们的界面能够反映出来。通过这样编写代码:
var user: User? {
didSet {
observeUser()
}
}
override func viewDidLoad() {
super.viewDidLoad()
observeUser()
}
...您确保无论设置了如何以及何时以及多少次 user
,我们都将获取其值并更新界面。