Получить текущее местоположение на iOS - PullRequest
0 голосов
/ 03 мая 2018

Мне нужно узнать текущее местоположение пользователя (широта, долгота), но я не могу найти решение, потому что все решения только для iOS 6,7,8. Например, у меня есть этот код, но на iOS 11.3.1 он все еще не работает.

#import <CoreLocation/CoreLocation.h>

@interface ViewController () <CLLocationManagerDelegate>

@property (weak, nonatomic) IBOutlet UILabel *latitudeValue;
@property (weak, nonatomic) IBOutlet UILabel *longtitudeValue;

@property (nonatomic,strong) CLLocationManager *locationManager;

- (void)viewDidLoad
{
    [super viewDidLoad];

    if ([CLLocationManager locationServicesEnabled]) {
        self.locationManager = [[CLLocationManager alloc] init];
        self.locationManager.delegate = self;
        [self.locationManager startUpdatingLocation];
    } else {
        NSLog(@"Location services are not enabled");
    }
}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *location = [locations lastObject];
    self.latitudeValue.text = [NSString stringWithFormat:@"%f", location.coordinate.latitude];
    self.longtitudeValue.text = [NSString stringWithFormat:@"%f", location.coordinate.longitude];
}

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

В iOS 10 вам нужно добавить два ключа в info.plist как

NSLocationAlwaysUsageDescription ключ для вашего файла Info.plist. (Xcode отображает этот ключ как «Конфиденциальность - Местоположение Всегда Описание использования» в редакторе Info.plist.)

и для iOS 11

Добавьте ключ NSLocationWhenInUseUsageDescription и ключ NSLocationAlwaysAndWhenInUseUsageDescription в файл Info.plist. (Xcode отображает эти ключи как «Конфиденциальность - Местоположение, когда используется описание использования» и «Конфиденциальность - Местоположение всегда и когда используется описание использования» в редакторе Info.plist.)

Также полное руководство можно найти в документации Apple по адресу: Разрешение Apple CoreLocation

0 голосов
/ 03 мая 2018

Это потому, что вам нужно вызвать один из этих requestAlwaysAuthorization или requestWhenInUseAuthorization методов для вашего объекта self.locationManager и добавить соответствующие ключи в свой список приложений. Взгляните .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...