-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
但是,因为它是异步的,我不能存储变量,因为请求在打印后结束。你将如何设置你的信号量?或者别的什么可能? –