0
OpenweatherAPI를 사용하여 날씨 앱을 만들고 있습니다. 웹에서 데이터를 다운로드하지만, 다른 클래스로 전달하고자 할 때는 무효로 표시됩니다.iOS Swift App, Openweather API
그래서 내가 API
var currentTemp: Double {
if _currentTemp == nil {
_currentTemp = 120.0
}
return _currentTemp
}
func downloadWeatherDetails(completed: @escaping DownloadComplete) {
Alamofire.request(CURRENT_WEATHER_URL).responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String, Any> {
if let main = dict["main"] as? Dictionary<String, Any> {
if let currentTemperature = main["temp"] as? double_t {
let kelvinToCelsiusPreDivision = (currentTemperature - 273.15)
let kelvinToCelsius = Double(round((10 * kelvinToCelsiusPreDivision)/10))
self._currentTemp = kelvinToCelsius
print(self._currentTemp)
}
}
}
completed()
} }
그리고 mainVC에서 데이터를 받고 있어요 클래스의 -의 ViewController가 : 여기에 코드입니다
func updateMainUI() {
currentTempLabel.text = "\(currentWeather.currentTemp)"
}
내가있는 viewDidLoad에 updateMainUI를 호출 물론 해요 ,하지만 IMHO UI를 업데이트하는 메서드는 아마도 JSON에서 데이터를 가져 오기 전에 호출됩니다 생각합니다.
앱의 레이블에 120이 표시되어 있으므로 아무 것도없는 것으로 간주됩니다 ... 잘못된 것이 있으면 괄호를 사용해주세요. 조언 :에 도움을 감사
편집 :
오 내가 API의 데이터가 완벽하게 괜찮 .. 추가하는 것을 잊었다, 그래서 API에 대한 호출이 :
'completion' 핸들러가 호출 된 후에 다시 UI를 업데이트해야하는데, 그 시점에서만 데이터를 사용할 수 있습니다. – dlbuckley