title: Uncaught exception: CALayer position contains NaN when doing animation
body: <p>I am getting this error in my application when I run on an iPad:</p>
  
  <blockquote>
    <p>Uncaught exception: CALayer position contains NaN</p>
  </blockquote>
  
  <p>The same code works fine on an iPhone.</p>
  
  <pre><code>- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
  {
      AnnotationView *aV;
  
      for (aV in views) {
          // Don't pin drop if annotation is user location
          if ([aV.annotation isKindOfClass:[MKUserLocation class]]) {
              continue;
          }
  
          // Check if current annotation is inside visible map rect, else go to next one
          MKMapPoint point =  MKMapPointForCoordinate(aV.annotation.coordinate);
          if (!MKMapRectContainsPoint(mapViewResult.visibleMapRect, point)) {
              continue;
          }
  
          CGRect endFrame = aV.frame;
  
          // Move annotation out of view
          // I checked here, CGRectEmpty returns true here
  
          aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y - self.view.frame.size.height, aV.frame.size.width, aV.frame.size.height);
  
          // Animate drop
          [UIView animateWithDuration:0.5 delay:0.04*[views indexOfObject:aV] options: UIViewAnimationOptionCurveLinear animations:^{
  
              aV.frame = endFrame;
  
              // Animate squash
          }completion:^(BOOL finished){
              if (finished) {
                  [UIView animateWithDuration:0.05 animations:^{
                      aV.transform = CGAffineTransformMakeScale(1.0, 0.8);
  
                  }completion:^(BOOL finished){
                      if (finished) {
                          [UIView animateWithDuration:0.1 animations:^{
                              aV.transform = CGAffineTransformIdentity;
                          }];
                      }
                  }];
              }
          }];
      }
  }
  </code></pre>
  
  <p>I get to know that, the frame which is assigning is contains <code>NaN</code> value, I checked this with <code>CGRectEmpty</code> function and setting that frame to <code>CGRectZero</code> but it wont work.</p>
  
  <p>I got this working code from here, <a href="https://stackoverflow.com/a/7045916/1603234">https://stackoverflow.com/a/7045916/1603234</a></p>
  
  <p>Backtrace / Debug Log</p>
  
  <pre><code>*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [594.947 nan]'
  *** First throw call stack:
  (
      0   CoreFoundation                      0x048551e4 __exceptionPreprocess + 180
      1   libobjc.A.dylib                     0x034ad8e5 objc_exception_throw + 44
      2   CoreFoundation                      0x04854fbb +[NSException raise:format:] + 139
      3   QuartzCore                          0x01a1be1a _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 190
      4   QuartzCore                          0x01a1bfd9 -[CALayer setPosition:] + 68
      5   QuartzCore                          0x01a1c6df -[CALayer setFrame:] + 799
      6   UIKit                               0x01fbbb4d -[UIView(Geometry) setFrame:] + 302
      7   MyAppName                           0x0026b025 -[ResultMapViewController mapView:didAddAnnotationViews:] + 2133
      8   MapKit                              0x01e0449b -[MKMapView annotationManager:didAddAnnotationRepresentations:] + 272
      9   MapKit                              0x01e3b53c -[MKAnnotationManager updateVisibleAnnotations] + 2052
      10  Foundation                          0x02ed6de7 __NSFireTimer + 97
      11  CoreFoundation                      0x04813ac6 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
      12  CoreFoundation                      0x048134ad __CFRunLoopDoTimer + 1181
      13  CoreFoundation                      0x047fb538 __CFRunLoopRun + 1816
      14  CoreFoundation                      0x047fa9d3 CFRunLoopRunSpecific + 467
      15  CoreFoundation                      0x047fa7eb CFRunLoopRunInMode + 123
      16  GraphicsServices                    0x03ccd5ee GSEventRunModal + 192
      17  GraphicsServices                    0x03ccd42b GSEventRun + 104
      18  UIKit                               0x01f60f9b UIApplicationMain + 1225
      19  MyAppName                           0x0001ba3d main + 141
      20  MyAppName                           0x000027e5 start + 53
  )
  libc++abi.dylib: terminating with uncaught exception of type NSException
  </code></pre>