предупреждение: локальное объявление ‘MapView’ скрывает переменную экземпляра

#iphone #sdk

#iPhone #sdk

Вопрос:

пожалуйста, кто-нибудь может объяснить и помочь мне, как исправить это предупреждение?? заранее спасибо.

 -(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:

у вас уже есть переменная экземпляра с именем MapView.

Вы можете изменить локальное имя на что-то другое. Например, так:

 -(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:

Измените имя вашего объявления экземпляра MKMapView в вашем файле интерфейса или имя локальной переменной в вашем методе.

 -(void)mapView:(MKMapView *)theMapView regionWillChangeAnimated:(BOOL)animated...