Проблемы с iOS MKMapView - PullRequest
       2

Проблемы с iOS MKMapView

2 голосов
/ 01 марта 2012

У меня есть MKMapView, отображающий некоторые пользовательские местоположения.Все работает нормально, пока я не нажму кнопку возврата.

SearchViewController - это имя моего класса.

Иногда я получаю:

[SearchViewController respondsToSelector:]: message sent to deallocated instance 0x73495f0

В других случаях:

[SearchViewController mapView: regionDidChangeAnimated:]: сообщение отправлено на освобожденный экземпляр 0x7343f20

Или:

[SearchViewController mapView:didUpdateUserLocation:]: message sent to deallocated instance 0x7343f20

   These functions are : 


-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{

    MKCoordinateRegion mapRegion;   
    mapRegion.center = mapViewHandler.userLocation.coordinate;
    mapRegion.span.latitudeDelta = 0.2;
    mapRegion.span.longitudeDelta = 0.2;

    [mapViewHandler setRegion:mapRegion animated: YES];

}
- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view
{

    //do nothing
}

Обычно это происходит, когда я вхожу в представление и затем сразу возвращаюсь.

Не могли бы выпомочь мне избавиться от этой ошибки?У меня есть mapViewHandler, созданный в файле .xib и использовавший метод [self.mapViewHandler setDelegate:self]; в viewDidLoad().Есть ли способ остановить загрузку всего (запросы и т. Д.), Когда я нажимаю кнопку возврата и покидаю это представление?

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Когда вы «возвращаетесь», ваш SearchViewController извлекается из стека навигации и освобождается.Однако MKMapView все еще активен и пытается вызвать методы делегата на вашем контроллере представления, который больше не существует.Попробуйте установить для делегата mapView значение nil в методе dealloc контроллера view или в методе viewDidUnload.

0 голосов
/ 01 марта 2012

Вы можете установить делегат вида карты в ноль в методе dealloc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...