我最近开始学习objectiveC并开始在iOS6中开发应用程序.
现在,我正在尝试将其转换为iOS7并面临MKMap的问题.
在iOS6中,我使用的是viewForOverlay.
在iOS7中,我将其更改为renderForOverlay.但是,我的应用程序不是调用mapView:rendererForOverlay.以下是我的代码.感谢您的帮助.
- (void) drawPolyline:(NSArray *)locations
{
[mapView setDelegate:self];
...
...
self.polyline = [MKPolyline polylineWithCoordinates:locationCoordinate2DArray count:numberOfLocations];
free(locationCoordinate2DArray);
[mapView addOverlay:self.polyline];
[mapView setNeedsDisplay];
}
- (MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.polyline];
lineView.strokeColor = [UIColor blueColor];
lineView.lineWidth = 7;
return lineView;
}
Run Code Online (Sandbox Code Playgroud) 我的应用程序在iOS6上运行正常,但是当我向MKMapView添加叠加时由于访问不良而在iOS 7上崩溃.我的代码如下
MKPolyline *polyline = [[MKPolyline alloc] init];
polyline = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps];
[directionMap addOverlay:polyline];
Run Code Online (Sandbox Code Playgroud)

这是崩溃日志(lldb)bt*
thread #51: tid = 0x1cc5, 0x38755f8c libdispatch.dylib`dispatch_retain$VARIANT$mp + 8, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x38755f8c libdispatch.dylib`dispatch_retain$VARIANT$mp + 8
frame #1: 0x3598dbc8 VectorKit`-[VKRasterOverlayTileSource init] + 176
frame #2: 0x358cfd24 VectorKit`-[VKMapModel _rasterOverlayTileSourceForLevel:] + 308
frame #3: 0x358d0226 VectorKit`-[VKMapModel addRasterOverlay:] + 46
frame #4: 0x2f068dfe MapKit`-[MKOverlayContainerView _insertDrawable:forOverlay:atIndex:level:] + 1010
frame #5: 0x2f06752e MapKit`-[MKOverlayContainerView _configureAndAddDrawable:forOverlay:level:] + 326
frame #6: 0x2f0676ac MapKit`-[MKOverlayContainerView _considerAddingDrawable:inAddRect:level:] + 372
frame …Run Code Online (Sandbox Code Playgroud)