Снимок экрана:

< Сильный > Код:

 if (_locationManager == nil) {
        _locationManager = [[CLLocationManager alloc] init];
        _locationManager.delegate = self;

        _locationManager.requestWhenInUseAuthorization; // this is OK with warning
        _locationManager.requestWhenInUseAuthorization(); // this is giving me error
    }

Я довольно новичок в разработке для iOS, поэтому не знаю, как ее решить.

0
user6274128 18 Авг 2019 в 17:52

2 ответа

Лучший ответ

Я думаю, что в Objective-C вам нужно правильно отправить сообщение requestWhenInUseAuthorization вашему экземпляру _locationManager, например, так:

[_locationManager requestWhenInUseAuthorization];

И, как упомянул MacUserT, похоже, что вы смешиваете код в стиле Swift и Objective-C. Я не уверен, как ваш оригинальный фрагмент скомпилирован, хотя. Домашняя работа для меня, возможно.

0
Aaron 18 Авг 2019 в 15:16

Можете ли вы попробовать следующее при разработке в Swift:

    let locationManager = CLLocationManager()

    locationManager.requestWhenInUseAuthorization()
    locationManager.delegate = self

Это должно работать, если вы создали проект с выбранным языком Swift. введите описание изображения здесь

Если вы разрабатываете в Objective-C, я думаю, что лучший способ это:

let locationManager = [[CLLocationManager alloc] init];
[locationManager requestWhenInUseAuthorization];
[locationManager delegate] = self;
1
MacUserT 18 Авг 2019 в 15:15