Ошибка:ошибка requestWhenInUseAuthorization только при первом запуске
Trying to start MapKit location updates without prompting for location authorization. Must call -[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager requestAlwaysAuthorization] first.
Код:
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
var locationManager: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
let currentLocationCoo = locationManager.location?.coordinate
if let locationCoo = currentLocationCoo{
mapView.region = MKCoordinateRegionMake(CLLocationCoordinate2D(latitude: locationCoo.latitude, longitude: locationCoo.longitude), MKCoordinateSpan(latitudeDelta: 0.002, longitudeDelta: 0.002))
print("location ni nil")
}else{
mapView.region = MKCoordinateRegionMake(CLLocationCoordinate2D(latitude: 52.05695, longitude: 14.50575), MKCoordinateSpan(latitudeDelta: 0.002, longitudeDelta: 0.002))
}
let defaultAnnotation = MKPointAnnotation()
defaultAnnotation.coordinate = mapView.region.center
defaultAnnotation.title="Center"
defaultAnnotation.subtitle="This is!"
mapView.addAnnotation(defaultAnnotation)
mapView.showsUserLocation=true
mapView.showsBuildings=true
mapView.userTrackingMode = .None
}
я заметил, что IOS бросает ошибку только при первом запуске. Прежде чем я даже соглашусь на приглашение на поиск местоположения. При последующем запуске он отлично работает. Это потому, что первый контроллер представления, который запускает приложение, уже использует карты? Обходной путь, вероятно, НЕ должен прыгать непосредственно в карты, но сначала показать некоторые другие VC. Любое другое обходное решение?
Да, это работает красиво. Спасибо, добрый сэр. – brumbrum