MapKit Tile Overlay roto en iOS8

Tengo este código para implementar OSM en mi aplicación por defecto en Apple uno:

dispatch_async(dispatch_get_main_queue(), ^{ NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png"; MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template]; overlay.canReplaceMapContent = YES; [self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];}); 

Y:

 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay { if ([overlay isKindOfClass:[MKTileOverlay class]]) { return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay]; } else return nil; } 

En iOS 7 estuvo bien, pero ahora regresa varias veces y el map no está cargado en absoluto:

 <Error>: ImageIO: CGImageSourceCreateWithData data parameter is nil 

¿Cómo puedo arreglarlo? Intenté refactorizar mi código, así que el primer fragment de código ahora es:

 dispatch_queue_t fetchTiles = dispatch_queue_create("fetcher", NULL); dispatch_async(fetchTiles, ^{ NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png"; MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template]; overlay.canReplaceMapContent = YES; dispatch_async(dispatch_get_main_queue(), ^{ [self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];});}); 

Pero esto no parece solucionar el problema.

El código que está usando se ve bien, excepto …

Parece extraño que estés haciendo la superposition de agregar en un bloque. Acabo de agregar una acción y parece que no cuelga la interfaz de usuario en absoluto.

solo haz…

  NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png"; MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template]; overlay.canReplaceMapContent = YES; [self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels]; 

Además, presenté un error a Apple y cuando querían una muestra, mi superposition no aparecía … hasta que configuré el delegado. (A pesar de que estaba conectado en storyboard). Apple cerró mi error como un duplicado para que lo sepan.

 mapView.delegate = self