2015-09-23 2 views
0

Я пытаюсь показать текущее местоположение на карте, но не удается. Он дает ошибку, поскольку местоположение равно null. Какую опцию следует выбирать в параметрах местоположения отладки симулятора. Если я пытаюсь использовать ничего, кроме того, что возвращает null location nd для пользовательского, он дает местоположение предварительно определенной координаты. я хочу получить текущее местоположение!Показать текущее местоположение на карте ios с CLLocationmanager

+0

Вы проверили, что для вашего приложения включено разрешение «Службы определения местоположения»? Вы можете проверить это: Настройки устройства -> Конфиденциальность -> Службы определения местоположения -> Проверить разрешение для вашего приложения. –

+0

да его доступно –

ответ

0

Я не думаю, что вы можете получить текущее местоположение через симулятор. Все, что вы можете сделать, это указать широту и долготу вашего текущего местоположения в Debug -> Location -> Custom Location. Это будет использоваться в качестве текущего местоположения вашим симулятором. Другой вариант - добавить GPX-файл в проектную схему. Схема выбора -> Параметры -> Проверить разрешить моделирование местоположения. Добавьте файл GPX в свой проект. Adding GPX File

Выше настройки предназначены для отладки в симуляторе. Он работает на основе текущего местоположения на реальном устройстве, даже если эти настройки не выполняются (для безупречного кода).

+0

@KiruthikaSelvavainayagan вы правы, я думаю, что он работает на устройстве. –

+0

, но это не совсем правильный способ, предоставляя lat в пользовательских настройках. Он покажет, что место в другом месте. его статический до этого лат длинный только –

+0

@JAYRAPARKA: Он запускает свою сборку в симуляторе –

0

создать объект первого

CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate = self; 

#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) 
if(IS_OS_8_OR_LATER) 
{ 
    [locationManager requestAlwaysAuthorization]; 
    [locationManager requestWhenInUseAuthorization]; 
} 
[locationManager startUpdatingLocation]; 

//Below two lines give you current location (lat-long). 
Latitude = [NSString stringWithFormat:@"%f",locationManager.location.coordinate.latitude]; 
NSLog(@"Lat====%@",Latitude); 

Longitude = [NSString stringWithFormat:@"%f",locationManager.location.coordinate.longitude]; 
NSLog(@"Log====%@",Longitude); 
0

Вы можете добавить это в AppDelegate.h

@property (nonatomic, strong) CLLocationManager *locationManager; 

Вы можете использовать это для выборки текущего местоположения. вы можете добавить этот код в AppDelegate.m file

if ([CLLocationManager locationServicesEnabled]) { 
     if (!_locationManager) { 
      _locationManager = [[CLLocationManager alloc] init]; 
      _locationManager.delegate = self; 
      _locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
      _locationManager.distanceFilter = 10.0; 
      [self.locationManager startMonitoringSignificantLocationChanges]; 
     } 
     // Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7. 
     if ([_locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) 
      [_locationManager requestAlwaysAuthorization]; 
     [_locationManager startUpdatingLocation]; 
    } 
+0

в appdelegate или viewdateload? –

+0

положить в appdelegate –

+0

ok позвольте мне попробовать :) –

Смежные вопросы