title: Issue with "func observeValueForKeyPath(keyPath : NSString, object : AnyObject, change : NSDictionary, context : Void)" in Swift
body: <p>I have added an observer for an AVPlayer like this </p>
  
  <pre><code>self.audioPlayer.addObserver(self, forKeyPath: "currentItem.status", options: [NSKeyValueObservingOptions.New, NSKeyValueObservingOptions.Initial], context: nil)
  </code></pre>
  
  <p>And called</p>
  
  <pre><code>func observeValueForKeyPath(keyPath : NSString, object : AnyObject, change : NSDictionary, context : Void) {
      if object as! AVPlayer == self.audioPlayer &amp;&amp; keyPath.isEqualToString("currentItem.status")
      {
          let playerStatus = self.audioPlayer.currentItem!.status.rawValue as Int
          if playerStatus == AVPlayerStatus.Failed.rawValue
          {
              self.replaceCurrentItem(self.fileName)
          }
          else if playerStatus == AVPlayerStatus.ReadyToPlay.rawValue
          {
              self.playAudio()
              self.updateDurationPeriodcally()
              self.updateInfo()
          }
          else if playerStatus == AVPlayerStatus.Unknown.rawValue
          {
              print("\(self.audioPlayer.currentItem!.error)")
          }
      }
  }
  </code></pre>
  
  <p>Problem is that <code>observeValueForKeyPath</code> is never called.</p>
  
  <p>Whole Code </p>
  
  <pre><code>func loadPlayer (urlString : NSString)
  {
      let url : NSURL = NSURL(string: urlString as String)!
  
      let length = (url.absoluteString).characters.count as Int
  
      if length == 0
      {
          return
      }
  
      let asset = AVURLAsset(URL: url, options: nil)
      let anItem = AVPlayerItem(asset: asset)
      self.audioPlayer = AVPlayer(playerItem: anItem)
      self.audioPlayer.volume = 1.0
      self.audioPlayer.play()
  
      addObserver(self,
          forKeyPath: ObservatingKeyPath,
          options: NSKeyValueObservingOptions.New,
          context: PlayerStatusObservingContext)
  
      self.audioPlayer.addObserver(self, forKeyPath: "currentItem.status", options: [NSKeyValueObservingOptions.New, NSKeyValueObservingOptions.Initial], context: nil)
  
      NSNotificationCenter.defaultCenter().addObserver(self, selector: "itemDidFinishPlaying:", name:AVPlayerItemDidPlayToEndTimeNotification, object: nil)
  }
  </code></pre>