Swift:函数完成的顺序是不可预测的

时间:2015-09-03 07:51:22

标签: ios iphone swift ipad

我得到了不可预测的结果,我想了解原因。我打电话给两个职能部门。第一次,第二个函数首先完成,但在那之后,它工作,并按顺序完成。我是Swift的新手,所以我迷失了。

以下是两个电话:

1   X1122   JJHJU   NULL
2   POIUY   NULL    YUHGF

updateValue使用以下命令调用写入数据的Web服务:

 updateValue(value: row, picker: picker.tag)
 updateResult()

然后updateResult也使用Web服务调用读取数据。

...
     NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue()) {(response, data, error) -> Void in
            if error != nil {
            println("error")
            } else {
            println(response)
            }
...

由于updateValue是异步的(我在这里读到的应该是这样的),我不知道该怎么做。而且我也很困惑为什么它只在第一次使用时失败。如果订单不可预测,为什么行为如此可预测?

由于

1 个答案:

答案 0 :(得分:0)

现在我可能错了,但我认为sendAsynchronousRequest很可能是异步调用: - )

换句话说,如果农场将任务交给执行的另一个“线程”,并且可能确实在实际工作完成之前返回给您。

如果你想要同步行为,你可能最好同步调用它,或者至少等到异步操作完成后再执行相关步骤(例如completionHandler)。