Я кодирую приложение в swift 4. Я застрял с проблемой обратного геокодирования.
Вот мой код:
Эта функция получает текущие координаты.
func getCurrentCoordinates(){
var currentLocation: CLLocation!
var locManager = CLLocationManager()
locManager.requestWhenInUseAuthorization()
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
if( CLLocationManager.authorizationStatus() == .authorizedWhenInUse ||
CLLocationManager.authorizationStatus() == .authorizedAlways){
currentLocation = locManager.location
self.coordGPS = currentLocation
}
}
Эта функция преобразуется в адрес
func convertLatLongToAddress(latitude:Double,longitude:Double){
let geoCoder = CLGeocoder()
let location = CLLocation(latitude: latitude, longitude: longitude)
geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in
// Place details
var placeMark: CLPlacemark!
placeMark = placemarks?[0]
self.sAddress = ""
/* Location name
if let locationName = placeMark.location {
if(self.bLocalize == true){
print(locationName)
}else{
//self.sAddress = locationName
}
}*/
// Street number
if let number = placeMark.subThoroughfare {
//print(number)
if(self.bLocalize == true){
self.TextFieldStationServiceAdresse.text = placeMark.subThoroughfare! + ", " + self.TextFieldStationServiceAdresse.text!
}else{
self.sAddress = self.sAddress! + ", " + number
}
}
// Street address
if let street = placeMark.thoroughfare {
if(self.bLocalize == true){
print(street)
self.TextFieldStationServiceAdresse.text = street
}else{
self.sAddress = self.sAddress! + ", " + street
}
}
// Zip code
if let zip = placeMark.postalCode {
if(self.bLocalize == true){
print(zip)
self.TextFieldCodePostal.text = zip
}else{
self.sAddress = self.sAddress! + ", " + zip
}
}
// City
if let ville = placeMark.locality {
if(self.bLocalize == true){
self.TextFieldStationServiceCPVille.text = ville
}else{
self.sAddress = self.sAddress! + " " + ville
}
}
// Country
if let country = placeMark.country {
if(self.bLocalize == true){
print(country)
}else{
self.sAddress = self.sAddress! + ", " + country
}
}
})
Моя проблемачто завершение Хэндлера никогда не вызывается.
Я импортировал CoreLocation
Не могли бы вы сказать, почему завершение никогда не вызывается?Службы определения местоположения не работают в этом классе.
Спасибо за вашу помощь.