title: Why does UIView:animateWithDuration complete immediately?
body: <p>I have a subclass of <code>MKPointAnnotation</code> with the following method which I run on iOS 4:</p>
  
  <pre><code>- (void)animate {
      [UIView
       animateWithDuration: 3.0
       delay:1.0
       options:UIViewAnimationOptionAllowUserInteraction
       animations:^{
           CLLocationCoordinate2D loc = 
               CLLocationCoordinate2DMake([self coordinate].latitude + 0.001,
                                          [self coordinate].longitude + 0.001);
           [self setCoordinate:loc];
  
       }
       completion:^(BOOL finished) {
           NSLog(@"Is completed");
       }];
  }
  </code></pre>
  
  <p>It is called by clicking a <code>UIBarButtonItem</code>.</p>
  
  <p>I expect to see the my annotation travel across a <code>MKMapView</code>. However all I see is the annotation in its final resting place when I call the method like this:</p>
  
  <pre><code>[mapView addAnnotation:myAnnotation];
  [myAnnotation animate];
  [myAnnotation release];
  </code></pre>
  
  <p>The intended animation only occurs if I call the method like this:</p>
  
  <pre><code>[mapView addAnnotation:myAnnotation];
  [myAnnotation performSelector:@selector(animate) withObject:nil afterDelay:0.5];
  [myAnnotation release];
  </code></pre>
  
  <p>Note that I get the unintended behavior if the 'afterDelay', is smaller e.g. &lt; 0.1s.</p>
  
  <p>Any ideas why this could be the case?</p>