1
我正在將我的應用程序移動到IOS 7。
我有一張地圖,在那張地圖上畫出MKPolyLine
。
一切工作,直到IOS 7現在應用程序崩潰。
我已經改變viewForOverLay
新方法:IOS 7 - 添加重疊崩潰應用程序
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolyline class]]) {
MKPolyline *route = overlay;
MKPolylineRenderer *routeRenderer = [[MKPolylineRenderer alloc] initWithPolyline:route];
routeRenderer.strokeColor = [UIColor redColor];
routeRenderer.lineWidth = 7;
return routeRenderer;
}
else return nil;
}
在viewDidLoad中我打電話:
[self performSelectorInBackground:@selector(drawPathInBackground) withObject:nil];
而這正是實現:
-(void)drawPathInBackground{
for(int idx = 0; idx < [routes count]; idx++)
{
Path *m_p = [routes objectAtIndex:idx];
CLLocationCoordinate2D workingCoordinate;
workingCoordinate.latitude=m_p.Latitude;
workingCoordinate.longitude=m_p.Longitude;
MKMapPoint point = MKMapPointForCoordinate(workingCoordinate);
pointArr[idx] = point;
}
self.routeLine = [MKPolyline polylineWithPoints:pointArr count:[routes count]];
//[self.mapView addOverlay:self.routeLine];
//free(pointArr);
dispatch_async(dispatch_get_main_queue(), ^{
[self.mapView addOverlay:self.routeLine];
free(pointArr);
});
}
在此行中:[self.mapView addOverlay:self.routeLine];
我得到: EXC_BAD_ACCESS(code = 2,address = 0x0)
好的,你能幫我解決我的代碼嗎? – 1110
使用類似_dispatch_async(dispatch_get_main_queue(),^ {//您的UI操作}); _在主線程中調度您的UI操作。 – Tobias
我已經改變 - (void)drawPathInBackground {...在我的問題(函數結束)是否正確的方式來做到這一點? – 1110