title: mapView:viewForAnnotation: not called when delegate set in code
body: <p>I have a custom class for my MKAnnotations, I want to override the default <code>mapView:viewForAnnotatation</code> method so that I can add extra information in the callout. When I set my delegate in code (as per the code below) the annotations are dropped on the map and are selectable but my <code>mapView:viewForAnnoation</code> is never called.</p>
  
  <pre><code>- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id &lt;MKAnnotation&gt;)annotation{
      NSLog(@"viewForAnnotation: called");
      MKAnnotationView *aView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"mapPin"];
      if(!aView){
          aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"mapPin"];
      }
      aView.annotation = annotation;
  
      return aView;
  }
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
  
      // Do any additional setup after loading the view.
      self.mapView.delegate = self;
  
  }
  </code></pre>
  
  <p>I know the delegate is being set as I can override the method <code>-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view</code> and I see an NSLog when I select an annotation.</p>
  
  <p>When I change from setting the delegate in code to setting it in the Storyboard the method is called (NSLog(@"viewForAnnotation: called"); statements appear) but the annotations don't appear on the map and sometimes this error appears:</p>
  
  <pre><code>&lt;Error&gt;: ImageIO: CGImageReadSessionGetCachedImageBlockData *** CGImageReadSessionGetCachedImageBlockData: bad readSession [0x8618480]
  </code></pre>