warning: local declaration of 'mapView' hides instance variable

拈花ヽ惹草 提交于 2019-12-25 09:27:35

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!