2016-01-27 12 views
0

Я занимаюсь разработкой простого приложения ios в swift, которое получает местоположение пользователя и показывает местоположение. Мне нужно настроить это приложение на ios 7.0 и выше, чтобы пользователи iPhone 4 могли использовать это приложение. Однако, когда я установить Deployment Target к 7.0 я получаю ошибку сборки говоря:self.locationManager.requestAlwaysAuthorization() доступен только на iOS 8.0 или новее - Swift

/Users/toing_toing/dev/xyz/HomePageViewController.swift:35:30: 'requestAlwaysAuthorization()' доступен только на IOS 8,0 или более поздняя версия

Оно происходит от этой линии:

self.locationManager.requestAlwaysAuthorization() 

мне нужно приложение, чтобы получить доступ к GPS все время на данный момент, но я не могу найти код замены для этого, чтобы исправить ошибку цели развертывания. Что я могу сделать?

+1

Перед прошивкой 8, начиная с обновления на locationManager сделал создать запрос к пользователю, если нет согласия не дано. Кроме того, не было различий между различными типами разрешений на размещение. – SmokeDispenser

ответ

1

Просто используйте self.locationManager.startUpdatingLocation()

var authorizationStatus = CLLocationManager.authorizationStatus() 
if (authorizationStatus == .AuthorizedWhenInUse || authorizationStatus == .AuthorizedAlways { 
    locationManager.startUpdatingLocation() 
}else if self.locationManager.respondsToSelector(Selector("requestAlwaysAuthorization")) { 
    self.locationManager.requestAlwaysAuthorization() 
}else { 
    locationManager.startUpdatingLocation() 
} 

+1

На самом деле, на iOS 8+ вы не должны начинать обновление до успешного авторизации. Итак, оберните это 'locationManager.startUpdatingLocation()' в 'else'. – SmokeDispenser

+0

@JanGreve Я обновил ответ, Тпх –

+0

я использовал 'если #available (IOS 8,0, *) { self.locationManager.requestAlwaysAuthorization() } еще { locationManager.startUpdatingLocation() }' и решить проблему , по-видимому, это рекомендуемое исправление для этой проблемы в xcode, но я этого не заметил! Ваш ответ по-прежнему дает ошибку. Но большое спасибо за помощь :) –