Alamofire Dark Sky API запрос Swift - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь выполнить запрос .get для API темного неба, для которого требуются следующие параметры: https://api.darksky.net/forecast/[key]/[latitude],[longitude]

Мой код выглядит следующим образом, и я получаю дополнительный аргумент в вызове метода, который, я думаю, связан с неправильными типами данных моей функции. Я пытался поиграть и найти правильные, но я не могу понять это правильно.

Мой запрос Alamofire выглядит следующим образом:

//Get wind data method

func getWindData(url: String, key: Any, latitude: Any, longitude: Any) {

    Alamofire.request(url, method: .get, key, latitude, longitude).responseJSON {

        response in
        if response.result.isSuccess {

            print("Success! Got the weather data")
            let windJSON : JSON = JSON(response.result.value!)

            print(windJSON)

        }

        else {
            print("Error \(String(describing: response.result.error))") }
            self.yard.text = "Connection issues"
    }

}

и мой «Метод обновления» заключается в следующем, чтобы использовать телефон GPS для получения требуемой широты и долготы пользователя:

//Did update method
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let location = locations[locations.count - 1]
    if location.horizontalAccuracy > 0 {
    self.locationManager.stopUpdatingLocation()

        print("latitude = \(location.coordinate.latitude), longitude = \(location.coordinate.longitude)")

        let latitude = String(location.coordinate.latitude)
        let longitude = String(location.coordinate.longitude)

        getWindData(url: base_URL, key: api_Key, latitude: latitude, longitude: longitude)

    }
}


//Did fail with error method
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    print(error)
    yard.text = "Error"
}

Большое спасибо заранее! Alex

1 Ответ

0 голосов
/ 15 января 2019

Вам нужно

 let openWeatherMapBaseURL = "https://api.darksky.net/forecast/Key_Here/"
 let urlStr = "\(openWeatherMapBaseURL)\(latitude),\(longitude)" 
 Alamofire.request(urlStr, method: .get, parameters:nil, encoding: JSONEncoding.default).responseJSON { [weak self] response in
 }

Для

нет существования
Alamofire.request(url, method: .get, key, latitude, longitude).responseJSON 

параметры get должны быть в URL, также latitude и longitude являются double значениями не Any

...