title: AVPlayer removing a periodicTimeObserver
body: <p>I'm having difficulty stopping an AVPlayers time observer.</p>
  
  <p>I have an AVPlayer player running like this:</p>
  
  <pre><code>player = [[AVPlayer alloc] initWithURL:[NSURL fileURLWithPath:path]];
  </code></pre>
  
  <p>then I add an observer</p>
  
  <pre><code>    [player addPeriodicTimeObserverForInterval:CMTimeMake(3, 10) queue:NULL usingBlock:^(CMTime time){
          NSTimeInterval seconds = CMTimeGetSeconds(time);
      NSLog(@"observer called");
          for (NSDictionary *item in robotR33) {
              NSNumber *time = item[@"time"];
              if ( seconds &gt; [time doubleValue] &amp;&amp; [time doubleValue] &gt;= [lastTime doubleValue] ) {
                 // NSLog(@"LastTime: %qi", [lastTime longLongValue]);
                  lastTime = @(seconds);
                  NSString *str = item[@"line"];
                  [weakSelf nextLine:str];
                 // NSLog(@"item: %qi", [time longLongValue]);
                 // NSLog(@"Seconds: %f", seconds)
              };
          }
      }];
      [player play];
  </code></pre>
  
  <p>once I am finished with the player I do this:</p>
  
  <pre><code>[player pause];
  [player removeTimeObserver:self.timeObserver]
  player = nil;
  </code></pre>
  
  <p>the weird thing is when I put a breakpoint in the code and step through the code using XCode it works.  I can see the block stops printing out "observer code"</p>
  
  <p>But when I run the code normally with no breakpoints, I can see that the observer is still running at the same interval after the [player removeTimeObserver] has been called. </p>
  
  <p>Any ideas?</p>