Метод делегата 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>