Swift - 如何在最终确定函数之前播放URLSession?

时间:2017-09-20 22:31:48

标签: ios swift

我目前正在使用URLSession从Web服务器发送和接收数据,但我遇到的问题是查询是在其后的任何其他代码的末尾执行的,例如,如果我有以下说明: / p>

end()

首先,您将运行“Hello world”然后运行http查询,如何运行URLSession,然后运行代码还剩下什么?

2 个答案:

答案 0 :(得分:1)

URL会话是异步的,涉及到来回与服务器进行通信的时间。您必须使用URLSession的变体,它允许您拥有完成处理程序:

select DISTINCT
from (select id, exist(data, ‘exercise_quiz’) key_exists
  from user_tracking) x
where key_exists = true;
祝你好运!

答案 1 :(得分:-2)

这是我找到的解决方案:

let semaphore = DispatchSemaphore(value: 0)

_ = URLSession.shared.dataTask (with: url_request) 
{(data, response, error) in
   print("One")
   semaphore.signal()
}.resume ()

_ = semaphore.wait(timeout: DispatchTime.distantFuture)
print (“Two”)

这就是打印:

>> One
>> Two