异步Swift函数需要很长时间才能更新标签

时间:2016-07-22 03:24:51

标签: ios swift

            NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) in
            // Get data as string
            if let object = try? NSJSONSerialization.JSONObjectWithData(data!, options: []) as! [String:AnyObject] {
                let rows = object["rows"] as! [[String:AnyObject]]
                let elements = rows.first!["elements"] as! [[String:AnyObject]]
                let duration = elements.first!["duration"] as! [String:AnyObject]
                let durationText = duration["text"] as! String


                self.durationTime = (hours * 3600) + (minutes * 60)
                print("\(self.durationTime) is the duration time")

                let dateFormatter = NSDateFormatter()
                dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
                self.newDate = self.datePicker.date.dateByAddingTimeInterval(-self.durationTime)

                let strDate = dateFormatter.stringFromDate(self.newDate)
                print("\(strDate) is the time you should leave at @willcohen")

                self.finalTimeLabel.text = "\(strDate)"

                if self.finalTimeLabel.text != strDate {
                    self.finalTimeLabel.text = "Calculating time..."
                }

            }

        }).resume()

您好,我在这里发布了我正在使用的代码。如您所见,顶部有一个完成处理程序。我在本节中删除了很多代码,因为其中一些代码无关紧要。我需要做的是将我的应用中的标签更改为变量strDate,但这似乎需要花费很长时间。我知道这是异步函数,但是当我在print("\(strDate) is the time you should leave at")行上运行我的应用程序时会立即打印strDate,所以我不确定为什么它会延迟这么长时间(至少15-20秒)来更新我的标签。所以,我的问题是,我如何解决这个问题,立即更新标签,就像立即打印strDate一样?提前谢谢。

0 个答案:

没有答案