Подтвердить что ты не робот

Метод CLLocationmanager "locationServicesEnabled" устарел в iOS 4?

Я знаю, что свойство 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 устарел". Кто-нибудь знает, как это исправить? Из-за предупреждения, если я отключил службу определения местоположения в системном предпочтении, представление предупреждения не может быть показано.

Спасибо!

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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