CLLocationManager не прекращает обновление - PullRequest
2 голосов
/ 10 декабря 2011

Вот мой код:

- (void) viewWillAppear:(BOOL)animated
{    
    // SETUP THE LOCATION MANAGER. 
    self.locManager = [[CLLocationManager alloc] init];
    self.locManager.delegate = self;
    [self.locManager startUpdatingLocation];
}


- (void) viewWillDisappear:(BOOL)animated
{
   [self.locManager stopUpdatingLocation];
    [self.locManager.delegate release];
}

Когда View Controller выходит из CLLocationManager, логотип стрелки в правом верхнем углу все еще отображается. Это как на iOS 4.3, так и на 5.0. Любое объяснение?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2011

Фиолетовая стрелка должна исчезнуть, как только вы позвоните:

[self.locManager stopUpdatingLocation];

При выделении вашего locManager вам не нужно вызывать self.locManager.Это увеличит количество сохраняемых данных до 2. Вместо этого используйте:

locManager = [[CLLocationManager alloc] init];

Кроме того, установите точку останова в вашем методе viewWillDisappear: и убедитесь, что он вызывается.Кроме того, установите делегата на ноль в конце.После выполнения этих пунктов ваш код будет работать.Фиолетовая стрелка предназначена для служб определения местоположения и сильно расходует батарею.Убедитесь, что стрелка исчезла, как только вы вызвали stopUpdatingLocation:

0 голосов
/ 10 декабря 2011

Я полагаю, что система указывает значок местоположения в любом приложении, которое использовало Базовое местоположение в последний час или около того.

...