Подсказка CLLocationManager отображает предупреждение, а затем исчезает - PullRequest
1 голос
/ 29 ноября 2011

Это одна ужасная ошибка. При использовании CLLocationManger, либо с startUpdatingLocation, либо с методами ALAsset для доступа к метаданным фотографии, система запрашивает доступ к местоположению, как и ожидалось ... но приглашение исчезает, как только оно отображается. Я не могу найти причину этого и надеюсь, что кто-то еще имел эту проблему. Это не происходит с другими оповещениями (такими как отображение UIAlertView).

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

Это большая проблема для меня, так как мне требуется разрешение для использования метаданных фотографии.

Ответы [ 2 ]

6 голосов
/ 18 апреля 2013

Создаете ли вы экземпляр CLLocationManager с помощью метода, подобного следующему:

-(void) viewDidAppear:(BOOL)animated {
    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    [locationManager startUpdatingLocation];
}

Если это так, то после выхода из функции очищается локальная переменная locationManager.Вы должны сохранить ссылку на locationManager либо в экземпляре, либо в статической переменной:

static CLLocationManager *locationManager;
-(void) viewDidAppear:(BOOL)animated {
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    [locationManager startUpdatingLocation];
}
0 голосов
/ 29 ноября 2011

Тьфу, теперь проблема, кажется, решена. И я не знаю почему или как.

...