我得到了不可预测的结果,我想了解原因。我打电话给两个职能部门。第一次,第二个函数首先完成,但在那之后,它工作,并按顺序完成。我是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是异步的(我在这里读到的应该是这样的),我不知道该怎么做。而且我也很困惑为什么它只在第一次使用时失败。如果订单不可预测,为什么行为如此可预测?
由于
答案 0 :(得分:0)
现在我可能错了,但我认为sendAsynchronousRequest
很可能是异步调用: - )
换句话说,如果农场将任务交给执行的另一个“线程”,并且可能确实在实际工作完成之前返回给您。
如果你想要同步行为,你可能最好同步调用它,或者至少等到异步操作完成后再执行相关步骤(例如completionHandler
)。