用于导致SIGABRT的网络请求的Swift完成处理程序

时间:2016-08-22 02:01:04

标签: swift networking

我正在使用完成处理程序来预先形成网络请求。一旦网络请求完成,我将结果添加到我构建的字典中,该字典包含与结果有关的其他信息。然后我调用一个函数来更改视图控制器中标签的文本。我正在使用的代码是:

    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函数?

0 个答案:

没有答案