Я пытаюсь передать текущее местоположение пользователя в параметрах, чтобы получить желаемый результат.Я получаю текущее местоположение следующим образом в моем методе viewDidLoad
: -
self.locationManager.requestAlwaysAuthorization()
self.locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()
}
После этого я вызвал метод didUpdateLocations
, чтобы получить координаты текущего местоположения, и создал две переменные, в которых я сохранил текущее местоположение.
var latitude: String = ""
var longitude: String = ""
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let locValue: CLLocationCoordinate2D = manager.location?.coordinate else { return }
print("locations = \(locValue.latitude) \(locValue.longitude)")
self.latitude = "\(locValue.latitude)" ; self.longitude = "\(locValue.latitude)"
print(self.latitude, self.longitude)
}
Но когда я пытаюсь передать свое текущее местоположение в параметрах, я не получаю значения.
let param: [String : Any] =
["lat": self.latitude,
"lng": self.longitude,
"truck_type": "2",
"title": "home",
"job_type": "Jobs"
]
print(param)
CommonUtils.showHudWithNoInteraction(show: true)
Alamofire.request("api", method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in
CommonUtils.showHudWithNoInteraction(show: false)
switch(response.result) {
case .success(_):
if let json = response.result.value as? [String:Any] {
print(json)
DispatchQueue.main.async {
self.fleetOwnerTableView.reloadData()
}
}
break
case .failure(_):
print("Error")
break
}
}
Я не знаю, что я делаю не так.Как передать текущее местоположение в параметры?