Ваш код выглядит нормально. Если это не работает - проблема не здесь.
Убедитесь:
- Вы запускаете его на устройстве (не эмуляторе)
- На вашем устройстве установлена и подключена SIM-карта к сотовой сети
- Очень хорошая идея подключить устройство к WiFi с доступом в Интернет.
Все это поможет GPS быстрее определять положение с помощью вспомогательного GPS.
Кроме того, учтите, что Базовая локация возвращает последнюю известную позицию почти сразу. Это устарело и может быть неправильно, но предоставлено немедленно. Если вообще ничего не получается - похоже на проблему с Core Location на вашем устройстве, а не с приложением.
Кроме того, рекомендуется реализовать locationManager: didFailWithError: метод для обнаружения возможных ошибок. Вроде отключен GPS.
Вот пример для этого метода:
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"GPS Error: %@", [error localizedDescription]);
}
Определение местоположения GPS может занять несколько минут для 3G и ранних версий, и около 10 секунд для 4 и 4S (при условии ясного неба в обоих случаях)