Alamofireを使ってAPIリクエストをしています。レスポンスをSwiftyJSONを用いてパースした結果を返す関数を実装しようとしています。
https://qiita.com/kazuhirox/items/9ecb25bc238ad2d47ff0
の手法を用いて非同期処理の処理待ちをしているのですがループから抜け出せず
この関数の中で処理が止まっています。(printまで行ってません)
whileループのどのような処理を加えると抜けることができるのでしょうか。
非同期処理の理解が浅いのですがよろしくお願いします。
Swift3
1func getRain(latitude: Double,longitude: Double,time: Int) -> JSON{ 2 3~~~~~~~ 4 5 var keepAlive = true 6 var json:JSON = "" 7 8 Alamofire.request(url1,method: .get).responseJSON { (response) in 9 10 if let Json = response.result.value { 11 json = JSON(Json) 12 keepAlive = false 13 } 14 15 } 16 let runLoop = RunLoop.current 17 while keepAlive && 18 runLoop.run(mode: RunLoopMode.defaultRunLoopMode, before: NSDate(timeIntervalSinceNow: 0.1) as Date) { 19 } 20 print("json",json) 21 return json 22 23 24 25 }
回答3件
あなたの回答
tips
プレビュー