У меня есть простая цель моего приложения - получить текущую координату и использовать их для добавления аннотации в виде карты.
Я пробовал много решений из результатов Google, но он все еще не работает ....
В области отладки никогда не отображается «locationManager did UpdateLocation», сообщение, которое я печатаю в функции ....
Похоже, что приложение никогда не запускало функцию "делали UpdateLocation", даже была вызвана startUpdatingLocation ()?
Добавить строку конфиденциальности местоположения в info.plist: Готово.
Включите GPS на моем Mac Pro: Готово.
Версия Xcode: 10.1
MacOS: 10.13,6 (Высокая Сьерра)
let cloaction = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
MapView.delegate = self
MapView.showsScale = true
MapView.showsPointsOfInterest = true
MapView.showsUserLocation = true
cloaction.requestAlwaysAuthorization()
cloaction.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
print("IN")
cloaction.delegate = self
cloaction.desiredAccuracy = kCLLocationAccuracyBest
cloaction.startUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print("locationManager did UpdateLocation")
let location = CLLocationCoordinate2D(latitude: (locations.first?.coordinate.latitude)!, longitude: (locations.first?.coordinate.longitude)!)
currentLat = (locations.first?.coordinate.latitude)!
currentLon = (locations.first?.coordinate.longitude)!
let span = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)
MapView.setRegion(MKCoordinateRegion(center: CLLocationCoordinate2DMake(currentLat,currentLon), span: span), animated: true)
MapView.showsUserLocation = true
print(locations.first?.coordinate.latitude)
print(locations.first?.coordinate.longitude)
}