私のアプリケーションでは、マップにオーバーレイを追加したいのですが、ユーザーがスライダーをドラッグすると、オーバーレイの円の半径を変更する必要がありますが、スレッド例外がスローされることがあります。私のコード:
- (void)addCircleWithRadius:(NSNumber *)radius
{
MKCircle *circle = [MKCircle circleWithCenterCoordinate:userlocation radius:[radius doubleValue] ];
[circle setTitle:@"background"];
MKCircle *circleLine = [MKCircle circleWithCenterCoordinate:userlocation radius:[radius doubleValue]];
[circleLine setTitle:@"line"];
NSArray *overlays = [NSArray arrayWithObjects:circle,circleLine, nil];
[mapView addOverlays:overlays];
}
-(void)slider_change:(id)sender
{
@try {
[mapView removeOverlays:[mapView overlays]];
if([mapView.overlays count] == 0)
{
CLLocationCoordinate2D _coordinate ;
_coordinate.latitude = 35.692995;
_coordinate.longitude = 51.421509;
NSNumber *value = [NSNumber numberWithFloat:slider.value * 1000];
[self addCircleWithRadius:value];
}
}
@catch (id exception) {
}
}