问题
please, can anybody explain and help me how to fix that warning?? thx in advance.
-(void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated {
mapRegion=mapView.region; //first warning
}
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
newRegion=mapView.region; //second warning
if(mapRegion.span.latitudeDelta>newRegion.span.latitudeDelta||mapRegion.span.longitudeDelta>newRegion.span.longitudeDelta)
shouldAdjustZoom=NO;
}
回答1:
you have an instance variable with the name mapView already.
You can change the local name to something else. For example like this:
-(void)mapView:(MKMapView *)aMapView regionWillChangeAnimated:(BOOL)animated {
mapRegion=aMapView.region; //first warning
}
-(void)mapView:(MKMapView *)aMapView regionDidChangeAnimated:(BOOL)animated {
newRegion=aMapView.region; //second warning
if(mapRegion.span.latitudeDelta>newRegion.span.latitudeDelta||mapRegion.span.longitudeDelta>newRegion.span.longitudeDelta)
shouldAdjustZoom=NO;
}
回答2:
Change the name of your MKMapView instance declaration in your interface file, or the name of the local variable in your method.
-(void)mapView:(MKMapView *)theMapView regionWillChangeAnimated:(BOOL)animated...
来源:https://stackoverflow.com/questions/5626885/warning-local-declaration-of-mapview-hides-instance-variable