我正在使用完成处理程序来预先形成网络请求。一旦网络请求完成,我将结果添加到我构建的字典中,该字典包含与结果有关的其他信息。然后我调用一个函数来更改视图控制器中标签的文本。我正在使用的代码是:
requestCalculateTotals(data["id"] as! String, pickupDate: data["pickup_date"] as! String, dropoffDate: data["dropoff_date"] as! String){
(calculateData: NSDictionary) in
self.data.addEntriesFromDictionary(calculateData as [NSObject : AnyObject])
self.refreshDetails()
}
这导致SIGABRT错误,我不明白为什么?我已经测试了完成处理程序和网络请求,它们都工作,我可以打印结果数据,它包含我期望的数据。 refreshDetails函数在完成处理程序之外工作,但它不会等待网络请求。
构建完成处理程序时是否有一些我错过的东西,还是有更好的方法可以等待网络请求?
编辑我收到错误消息:“此应用程序正在从后台线程修改autolayout引擎,这可能导致引擎损坏和奇怪的崩溃。这将导致将来版本中的异常。”当网络请求完成后,如何在主线程中添加我的refreshDetails函数?