-1
我對Swift 3很陌生,我必須對我的API做GET請求。我正在使用Alamofire,它使用異步功能。線程1:信號SIGABRT alamofire
我做同樣的在我的Android應用程序,而GET返回JSON數據
這是我在SWIFT代碼:
func getValueJSON() -> JSON {
var res = JSON({})
let myGroup = DispatchGroup()
myGroup.enter()
Alamofire.request(url_).responseJSON { response in
res = response.result.value as! JSON
print("first result", res)
myGroup.leave()
}
myGroup.notify(queue: .main) {
print("Finished all requests.", res)
}
print("second result", res)
return res
}
但我有與線有問題「RES =響應.result.value「給我的錯誤:線程1:信號SIGABRT
我真的不明白從哪裏來的問題,這是很難做一個」同步「功能,也許我這樣做錯誤。
我的目標是將請求的結果存儲在我返回的變量中。任何人都可以幫忙
這似乎沒問題,但我怎麼能返回一個變量,我在循環中聲明?當我在其他地方宣佈它時,我有線程錯誤 –
我通常會聲明一個類屬性。 '''var結果:JSON = []'''和下面我只是在'''.success(let value)'''case中添加'''self.results = JSON(value)'''',所以我可以稍後使用它。但是這需要'''''SwiftyJSON'''。 – Nedim
但是,因爲它是異步的,我不能存儲變量,因爲請求在打印後結束。你將如何設置你的信號量?或者別的什麼可能? –