函数在收到响应后需要一段时间才能继续

Function Takes While To Continue After Receiving Response

我正在尝试处理来自服务器的响应,我收到了响应,但是,需要一段时间才能继续其余的工作。令人惊讶的是,打印内容工作正常,我检查了实时服务器的变化,它也工作正常。所以这是由 xcode.

引起的

收到响应后,检查是否成功,我检查..

  // Received HTTP Response

  if let status = json["status"].string {

        if status == "success" {
                   print("C")  
                   activityView.stopAnimating()
                   activityView.removeFromSuperview()

                   self.someAnimation()
                   print("D")
        } else {
            ...
        }
   }

令人惊讶的是,C 和 D 立即打印出来,但 activity 动画似乎并没有在两者之间停止。完成并停止并删除 activityIndicator 大约需要 10 秒。自定义动画 someAnimation() 也与 activity 指标同时继续。

我知道这是一个异步线程,但它不是必须停止 activityIndicator 并在它到达 print("D") 时继续吗?

我认为您正在后台线程上执行 UI 任务,这会导致未定义的行为。避免这种情况的一种方法是将 UI 方法调用包装在 dispatch_async:

// Received HTTP Response

if let status = json["status"].string {

    if status == "success" {
               print("C")  
               dispatch_async(dispatch_get_main_queue(), {
                    activityView.stopAnimating()
                    activityView.removeFromSuperview()

                    self.someAnimation()
               });

               print("D")
    } else {
        ...
    }
}