title: Swift 4 approach for observeValue(forKeyPath:...)
body: <p>I've been trying to find an example, but what I've seen doesn't work in my case. </p>
  
  <p>What would be the equivalent of the following code:</p>
  
  <pre><code>object.addObserver(self, forKeyPath: "keyPath", options: [.new], context: nil)
  
  override public func observeValue(
      forKeyPath keyPath: String?,
      of object: Any?, 
      change: [NSKeyValueChangeKey : Any]?, 
      context: UnsafeMutableRawPointer?) {
  
  }
  </code></pre>
  
  <p>The code above works, but I get a warning from SwiftLink:</p>
  
  <blockquote>
    <p>Prefer the new block based KVO API with keypaths when using Swift 3.2 or later.</p>
  </blockquote>
  
  <p>I appreciate it if you can point me in the right direction.</p>