title: iOS Converting MKMapView to UIImage. Never enters the block
body: <p>Based on this answer:</p>
  
  <p><a href="https://stackoverflow.com/questions/18776288/snapshot-of-mkmapview-in-ios7">Snapshot of MKMapView</a></p>
  
  <p>I tried to convert my map to picture, but the App never enters the snapshotter block.</p>
  
  <p>Why?</p>
  
  <pre><code>//Get location an then get a Picture of the Map.
  CLLocation *userLoc = self.map.userLocation.location; //self.map is a MKMapView;
  CLLocationCoordinate2D punto = userLoc.coordinate;
  MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(punto, 500, 500);
  [self.map setRegion:(region)];
  [self.map setShowsUserLocation:YES];
  //Place a Pin in actual location.
  MKPointAnnotation *pin = [[MKPointAnnotation alloc]init];
  pin.coordinate = punto;
  pin.title = @"Localización";
  [self.map addAnnotation:pin];
  
  //Convert map to picture.
  MKMapSnapshotOptions *options = [[MKMapSnapshotOptions alloc] init];
  options.region = self.map.region;
  options.scale = [UIScreen mainScreen].scale;
  options.size = self.map.frame.size;
  
  MKMapSnapshotter *snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
  [snapshotter startWithQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) completionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
      NSLog(@"Entering the block."); //Never prints!
      // get the image associated with the snapshot
      UIImage *image = snapshot.image;
      NSLog(@"imagen %@",image); //Niether do this!
      // Get the size of the final image
      CGRect finalImageRect = CGRectMake(0, 0, image.size.width, image.size.height);
      // Get a standard annotation view pin. Clearly, Apple assumes that we'll only want to draw standard annotation pins!
      MKAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:nil reuseIdentifier:@""];
      UIImage *pinImage = pin.image;
      // ok, let's start to create our final image
      UIGraphicsBeginImageContextWithOptions(image.size, YES, image.scale);
      // first, draw the image from the snapshotter
      [image drawAtPoint:CGPointMake(0, 0)];
      // now, let's iterate through the annotations and draw them, too
      for (id&lt;MKAnnotation&gt;annotation in self.map.annotations)
      {
          CGPoint point = [snapshot pointForCoordinate:annotation.coordinate];
          if (CGRectContainsPoint(finalImageRect, point)) // this is too conservative, but you get the idea
          {
              CGPoint pinCenterOffset = pin.centerOffset;
              point.x -= pin.bounds.size.width / 2.0;
              point.y -= pin.bounds.size.height / 2.0;
              point.x += pinCenterOffset.x;
              point.y += pinCenterOffset.y;
              [pinImage drawAtPoint:point];
          }
      }
      // grab the final image
      UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
      NSLog(@"Picture inside the block %@",finalImage);  //Never prints.
      UIGraphicsEndImageContext();
      // and save it
      NSData *data = UIImagePNGRepresentation(finalImage);
      [data writeToFile:@"Picture.jpg" atomically:YES];
      if (error) {
          NSLog(@"Error"); //This is not printed.
      }else{
          NSLog(@"Success!"); //Neither do this.
          self.fotoParaEnviar = finalImage;
      }
  }];
  NSLog(@"Picture outside the block %@",self.fotoParaEnviar); //This is allway NULL
  </code></pre>
  
  <p>Look like everything is instantiated fine. </p>
  
  <p>So why does the block is never executed?</p>