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

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

Ответ 1

Если вы тестируете это на устройстве iOS 8/Simulator, старый код местоположения может не работать из-за того, как iOS 8 обрабатывает доступ к разрешениям служб. Начиная с текущей бета-версии 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>