Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:功能完成的顺序是不可预测的_Ios_Iphone_Swift_Ipad - Fatal编程技术网

Ios Swift:功能完成的顺序是不可预测的

Ios Swift:功能完成的顺序是不可预测的,ios,iphone,swift,ipad,Ios,Iphone,Swift,Ipad,我得到了不可预测的结果,我想知道为什么。我调用两个函数。第一次,第二个函数首先完成,但在那之后,它开始工作,它们按顺序完成。我是斯威夫特的新手,所以我迷路了 以下是两个电话: updateValue(value: row, picker: picker.tag) updateResult() updateValue调用一个web服务,该服务使用以下命令写入数据: ... NSURLConnection.sendAsynchronousRequest(request, queue:

我得到了不可预测的结果,我想知道为什么。我调用两个函数。第一次,第二个函数首先完成,但在那之后,它开始工作,它们按顺序完成。我是斯威夫特的新手,所以我迷路了

以下是两个电话:

 updateValue(value: row, picker: picker.tag)
 updateResult()
updateValue调用一个web服务,该服务使用以下命令写入数据:

...
     NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue()) {(response, data, error) -> Void in
            if error != nil {
            println("error")
            } else {
            println(response)
            }
...
然后updateResult也使用web服务调用读取数据

...
    var task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: {
            (data, response, error) -> Void in
...
由于updateValue是异步的(我在这里读到它应该是异步的),所以我不确定我应该做什么。我也不明白为什么它只在第一次使用时失败。如果顺序不可预测,为什么行为如此可预测

谢谢

现在我可能错了,但在我看来,
sendAsynchronousRequest
很可能是一个异步调用:-)

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

如果您想要同步行为,您最好同步调用它,或者至少在执行依赖步骤之前等待异步操作完成(例如使用
completionHandler
).

现在我可能错了,但在我看来,
sendAsynchronousRequest
很可能是一个异步调用:-)

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


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

我会将您从取笑我开始的操作放在一边。:)因为完成处理器听起来是个好主意。我试试看,道歉,@user3026206只是温和地嘲笑了这个问题,而不是你个人。这正是澳大利亚的古怪才智。我不认为你是从取笑我开始的。:)因为完成处理器听起来是个好主意。我试试看,道歉,@user3026206只是温和地嘲笑了这个问题,而不是你个人。这就是澳大利亚人奇怪的智慧,就像现在这样。