Метод делегата CLLocationmanager не работает в xcode6

Я создал новый проект в Xcode6 и добавил старые файлы в этот проект (старые файлы создаются в xcode5), но все работает нормально, но метод делегата didUpdateToLocation не вызывается, я также использовал метод делегата didUpdateLocations но оба не работают. Код, который я использовал из старого файла, но базовая структура местоположения была добавлена ​​из xcode6, я не знаю, чего мне не хватает, пожалуйста, кто-нибудь подскажет мне, чтобы найти решение.

1 ответ

Решение

Если вы тестируете это на устройстве / симуляторе iOS 8, старый код местоположения может не работать из-за способа, которым iOS 8 обрабатывает доступ к службам разрешений Location Services. Начиная с текущей бета-версии iOS 8, вам нужно использовать новую -requestWhenInUseAuthorization метод:

- (void)updateCurrentLocation {

    if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
        [self.locationManager requestWhenInUseAuthorization];
    }

    [self.locationManager startUpdatingLocation];
}

Приглашение пользователя содержит текст из NSLocationWhenInUseUsageDescription введите файл Info.plist вашего приложения, и наличие этого ключа обязательно при вызове этого метода.

<key>NSLocationWhenInUseUsageDescription</key>
<string>We use your location to find places near you.</string>
Другие вопросы по тегам