title: viewForAnnotation sometimes can't get custom MKAnnotation class and render it properly
body: <p>I have different classes (MKAnnotation subclass) that represent map annotations.<br/>
  I load them on the map and it's fine but when I move or zoom map pins starts to loosing their image.<br/>
  When I pan map <code>viewForAnnotation</code> is called but pin that is <code>BluePin</code> class for example not anymore get in it's <code>if</code> block and as a result it renders the last annotation from <code>viewForAnnotation</code> with default pin image (green).<br/><br/>
  <strong>UPDATE</strong><br/><br/>
  I just realised that code actually get in each IF properly but never get in nested IF so this line of code make some issues:</p>
  
  <pre><code>var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier("blue")
              if (annotationView == nil) { ... after zoom/pan never get here }...
  </code></pre>
  
  <p>What can be the issue here:</p>
  
  <pre><code>func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -&gt; MKAnnotationView! {
  
          if annotation is MKUserLocation {            
              return nil
          }
  if(annotation.isKindOfClass(BluePin)){
  
              var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier("blue")
              if (annotationView == nil) {
                  annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "blue")
                  annotationView.canShowCallout = true;
  
                  annotationView.image = UIImage(named: "blue")
  
                  return annotationView
              }
          } else if(annotation.isKindOfClass(RedPin)){
  
              var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier("red")
              if (annotationView == nil) {
                  annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "red")
                  annotationView.canShowCallout = true;                                
                  annotationView.image = UIImage(named: "red")
  
                  return annotationView
              }
          }
  
  
              var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier("def") as? MKPinAnnotationView
              if pinView == nil {
                  pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "def")                
                  pinView!.pinColor = .Green
  
              }
              else {
                  pinView!.annotation = annotation
              }
  
              return pinView
      }
  </code></pre>