title: MKMapView freezes on User Interaction
body: <p>I have an application where I show a small map with one annotation, the map is in a objectDetailScreen that I created, this screen is updated whenever a new object is set, also showing a new map. The map as a annotation for the object.</p>
  
  <p>Whenever I try to move the view, tap the annotations pin or zoom, the map freezes for a while and I have no clue why it does that. The app is iPad only (iPad 2, iOS 4.3.5).  Here is the code that sets the map:</p>
  
  <pre><code>- (void) setObject:(AchmeaObject *)_object
  {
  
      if(kaart != nil)
      {
          [kaart removeFromSuperview];
          kaart = nil;
      }
  
      kaart = [[MKMapView alloc] initWithFrame:CGRectMake(340, 380, 400,300)];
      [kaart setDelegate: self];
      [kaart setUserInteractionEnabled:YES];
  
      CLLocationCoordinate2D coordinate;
      coordinate.latitude = [_object.latitude doubleValue];
      coordinate.longitude = [_object.longitude doubleValue];
  
      double miles = 2;
      double scalingFactor = ABS( cos(2 * M_PI * coordinate.latitude /360.0) );
  
      MKCoordinateSpan span;
      span.latitudeDelta = miles/69.0;
      span.longitudeDelta = miles/(scalingFactor*69.0);
  
      MKCoordinateRegion region;
      region.span = span;
      region.center = coordinate;
  
      [kaart setRegion: region animated:YES];
  
  
      ObjectAnnotation  *sa = [[ObjectAnnotation alloc] initWithName: _object.plaats Address: _object.adres Coordinate:coordinate];
  
      NSArray *anotations = [NSArray arrayWithObject: sa];        
  
      [kaart addAnnotations:anotations];
  
      [self.view addSubview:kaart];
  
  }
  </code></pre>
  
  <p>I have no idea why it happens, but when it first shows it takes a few seconds to respond to any user interaction, and after every interaction it needs at least a few more seconds, until after a few times freezing completely.</p>
  
  <p>ObjectAnnotation.m</p>
  
  <pre><code>#import "ObjectAnnotation.h"
  
  
  @implementation ObjectAnnotation
  
  @synthesize coordinate = _coordinate;
  
  - (id) initWithName: (NSString *) _name Address: (NSString *) _address Coordinate: (CLLocationCoordinate2D) _coord{
      self = [super init];
      name = [_name retain];
      address = [_address retain];
      _coordinate = _coord;
      return self;
  }
  
  
  - (NSString *)title {
      return name;
  }
  
  - (NSString *)subtitle {
      return address;
  }
  
  - (void)dealloc
  {
      [name release];
      name = nil;
      [address release];
      address = nil;    
      [super dealloc];
  }
  
  
  @end
  </code></pre>