Как получить текущее местоположение в ios в симуляторе?

я использую этот код, чтобы получить текущее местоположение, но не получаю правильный результат, чтобы получить текущее местоположение в симуляторе,

-(void)initLocationManager
{
    locationManager=[[CLLocationManager alloc] init];
    locationManager.delegate = self;
    if (([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]))
    {
        [locationManager requestWhenInUseAuthorization];
    }
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.distanceFilter = kCLDistanceFilterNone;

    //[locationManager requestWhenInUseAuthorization];
    // [locationManager startMonitoringSignificantLocationChanges];
    [locationManager startUpdatingLocation];

}

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation* location = [locations lastObject];
    //   NSDate* eventDate = location.timestamp;
    // NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];

    latitud = location.coordinate.latitude;
    longitud = location.coordinate.longitude;
    NSLog(@"%f,%f",latitud,longitud);
    [locationManager stopUpdatingLocation];

}

пожалуйста, скажите мне, как получить это текущее местоположение, я устал пытаться это с утра. пожалуйста, помогите мне


person user6438311    schedule 24.06.2016    source источник
comment
обновления местоположения предназначены для работы на реальном устройстве. Вы не сможете получить текущее местоположение в симуляторе.   -  person Muhammad Adnan    schedule 24.06.2016
comment
вы не можете получить свое текущее местоположение с помощью симулятора, используйте устройство.   -  person Dinesh Gurrapu    schedule 24.06.2016
comment
я устанавливаю местоположение из отладки › местоположение › пользовательское местоположение, но все еще не получаю местоположение, которое я там устанавливаю   -  person user6438311    schedule 24.06.2016
comment
эй @ user6438311 ты это исправил?   -  person Nitin Gohel    schedule 24.06.2016
comment
нет, я не получаю ответ, который я хочу, я не получаю текущую широту и долготу местоположения, поэтому я проверю свое устройство, чтобы оно могло отображаться на устройстве правильно   -  person user6438311    schedule 24.06.2016


Ответы (3)


Создайте файл GPX, выполнив следующие действия:

  • Перейдите в проект -> Добавить новый -> iOS -> Ресурс и выберите файл GPX.

введите описание изображения здесь

  • Теперь вам нужно сделать небольшой код в файле GPX следующим образом:

<!--
        Provide one or more waypoints containing a latitude/longitude pair. If you provide one
        waypoint, Xcode will simulate that specific location. If you provide multiple waypoints,
        Xcode will simulate a route visitng each waypoint.
 -->
<wpt lat="37.331705" lon="-122.030237">  // here change lat long to your lat long
     <name>Cupertino</name> // here set name 

     <!--   
            Optionally provide a time element for each waypoint. Xcode will interpolate movement
            at a rate of speed based on the time elapsed between each waypoint. If you do not provide
            a time element, then Xcode will use a fixed rate of speed.

            Waypoints must be sorted by time in ascending order.
      -->
     <time>2014-09-24T14:55:37Z</time>
</wpt>

  • Now go to edit schema

    введите описание изображения здесь

  • И выберите run и выполните в меню Option выбор, как показано ниже, появится наш файл GPX, выберите его, запустите и закройте:

введите описание изображения здесь

Вот и все, теперь вы можете получить местоположение вашей добавленной долготы в файле GPX.

ОБНОВЛЕНИЕ

Ниже приведен код для включения местоположения:

  • В info.plist нужно указать NSLocationWhenInUseUsageDescription и NSLocationWhenInUseUsageDescription о службах определения местоположения.

NSLocationWhenInUseUsageDescription

Теперь ваш класс .h

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<CLLocationManagerDelegate>
{

    __weak IBOutlet UILabel *lblLat;
    __weak IBOutlet UILabel *lblLong;
}
@property(strong,nonatomic) CLLocationManager *locationManager;
@end

Класс .M

- (void)viewDidLoad {
    [super viewDidLoad];

    self.locationManager = [[CLLocationManager alloc] init];
    [self.locationManager requestWhenInUseAuthorization];


    self.locationManager.delegate = self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    [self.locationManager startUpdatingLocation];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@"didFailWithError: %@", error);
    UIAlertView *errorAlert = [[UIAlertView alloc]
                               initWithTitle:@"Error" message:@"Failed to Get Your Location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [errorAlert show];
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"didUpdateToLocation: %@", newLocation);
    CLLocation *currentLocation = newLocation;

    if (currentLocation != nil) {
        lblLat.text = [NSString stringWithFormat:@"%.8f", currentLocation.coordinate.latitude];
        lblLong.text = [NSString stringWithFormat:@"%.8f", currentLocation.coordinate.longitude];
    }
}

Рабочий демонстрационный код: https://github.com/nitingohel/UserCurrentLocation_Objc.

person Nitin Gohel    schedule 24.06.2016
comment
должен быть какой-то код, чтобы найти текущее местоположение на устройстве и сохранить эту широту и долготу в какой-то строке, если да, поделитесь, пожалуйста - person user6438311; 24.06.2016
comment
но я не получаю текущее местоположение из приведенного выше кода, я сделал все, я получаю ноль - person user6438311; 24.06.2016
comment
Я просто создаю пример кода и прикрепляю демонстрацию, а также проверяю, что вам не хватает, чтобы включить службы определения местоположения. - person Nitin Gohel; 24.06.2016
comment
24.06.2016 17:23:58.880 UserCurrentLocation_Objc[4617:171406] didFailWithError: Error Domain=kCLErrorDomain Code=0 (null) 24.06.2016 17:23:58.972 UserCurrentLocation_Objc[4617:171406] Пользователь симулятора запросил новую графику качество: 100 эта ошибка идет - person user6438311; 24.06.2016
comment
stackoverflow.com/questions/34263626/ - person Nitin Gohel; 24.06.2016
comment
Большое спасибо @Nitin Gohel - person user6438311; 24.06.2016

В симуляторе вам нужно выбрать симуляцию местоположения в области отладки.

введите описание изображения здесь

или в схеме редактирования

введите описание изображения здесь

или вы можете добавить свой собственный файл GPX с координатами

person iSashok    schedule 24.06.2016
comment
должен быть какой-то код, чтобы найти текущее местоположение на устройстве и сохранить эту широту и долготу в какой-то строке, если да, поделитесь, пожалуйста - person user6438311; 24.06.2016
comment
Вы вошли в метод делегирования didUpdateLocations после startUpdatingLocation Если нет, попробуйте добавить свойство в свой класс и установить его self.locationManager = [[CLLocationManager alloc] init]; - person iSashok; 24.06.2016
comment
Это идеально подходит для симулятора. Любое другое решение для пользовательского текущего местоположения с перемещением и поиском. Я успешно справляюсь с этим с помощью модулей интеграции Google. но когда я настроен. Это дозирует работу. - person Raksha Saini; 31.05.2017

Вы не можете получить текущее местоположение непосредственно в симуляторе, вам нужно перейти к местоположению в Debug>location>custom симулятора и установить широту и долготу.

person Rahul Patel    schedule 24.06.2016
comment
я устанавливаю местоположение из отладки › местоположение › пользовательское местоположение, но все еще не получаю местоположение, которое я там устанавливаю - person user6438311; 24.06.2016
comment
попробуйте это, сначала выберите «нет» в местоположении, а затем снова нажмите на пользовательское местоположение и установите широту и долготу - person Rahul Patel; 24.06.2016
comment
должен быть какой-то код, чтобы найти текущее местоположение на устройстве и сохранить эту широту и долготу в какой-то строке, если да, поделитесь, пожалуйста - person user6438311; 24.06.2016