title: Key-Value Observing in Swift 4
body: <p>I have the following code in my Swift 4 project. </p>
  
  <pre><code>class DishesTableViewController : UITableViewController {
  
  
      private var token :NSKeyValueObservation?
  
      @objc dynamic private(set) var dishes :[Dish] = []
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          // configure the observation
          token = self.observe(\.dishes) { object, change in
  
              // change is always nil
              print(object)
              print(change)
          }
  
          updateTableView()
      }
  </code></pre>
  
  <p>Whenever the dishes array is changed, the observation is triggered. But my question is how can I get the actual changes that happened, that is, how can I access the actual <strong>Dish</strong> object that triggered the change? </p>