快速进行DidSet的目的是什么?

时间:2018-07-15 20:38:45

标签: ios swift

我通常会看到教程,特别是在Firebase应用程序上,他们在其中使用 DidSet ,但是我不确定为什么我们应该使用它代替 ViewDidLoad ,什么时候最好使用他们吗?

  var user: User? {
    didSet {
        observeUser()
        }
 }

2 个答案:

答案 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,我们都将获取其值并更新界面。