Метод CLLocationmanager "locationServicesEnabled" устарел в iOS 4? - PullRequest
13 голосов
/ 23 августа 2011

Я знаю, что свойство locationServicesEnabled устарело в iOS 4. Вместо этого я должен вызвать locationServicesEnabled

В моем приложении метод делегата

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //Some Code Here...
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    if (![manager locationServicesEnabled])
    {   //show an alert
    }
 }   

Я вызвал метод, однако Xcode показал мне предупреждение "locationServicesEnabled устарело". Кто-нибудь знает, как это исправить? Из-за предупреждения, если я отключил службу определения местоположения в настройках системы, представление предупреждений не может отображаться.

Спасибо!

Ответы [ 4 ]

52 голосов
/ 23 августа 2011

Из документации:

locationServicesEnabled: логическое значение, указывающее, находится ли местоположение сервисы включены на устройстве. (только для чтения) (устарело в iOS 4,0. Вместо этого используйте метод класса locationServicesEnabled.)

Так что вместо [manager locationServicesEnabled] вы должны использовать [CLLocationManager locationServicesEnabled]

12 голосов
/ 09 августа 2012

Если вы хотите узнать, есть ли у вашего приложения права на использование GPS, вам нужно проверить [CLLocationManager authorizationStatus]

Вы можете увидеть этот метод класса в Справочнике по классам CLLocationManager.

http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html

0 голосов
/ 06 июня 2017

Так что вам просто нужно удалить [(id)self.locationManager headingAvailable] и заменить его на [CLLocationManager locationServicesEnabled] проблема решена ...

0 голосов
/ 20 октября 2015

Если вы разрабатываете приложение для iOS 4 или выше, вы можете / комментировать / или удалить так:

- (BOOL)isLocationServicesEnabled
{
    BOOL locationServicesEnabledClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(locationServicesEnabled)];// iOS 4.x
    if (locationServicesEnabledClassPropertyAvailable) { // iOS 4.x
        return [CLLocationManager locationServicesEnabled];
    } else {
        return NO;
    }
}
...