我会疯狂地试图弄清楚如何在会话dataTaskWithRequest完成之前阻止我的其余代码执行。无论我做什么,数据任务都会赢得.resume(),直到其他所有内容都完成。什么都行不通。不使用while循环。不将任务放在单独的线程中(dispatch_async)。我的智慧结束了。更糟糕的是,我觉得我忽略了一些简单的事情,因为似乎没有人会问这个问题。
答案 0 :(得分:0)
NSURLSession是一个异步加载系统。当你告诉它开始时,它开始在自己的线程中获取数据,并且你的代码继续运行。如果您希望代码在之后执行请求返回数据,最简单的方法是将该代码放入完成处理程序块(通过调用 dataTaskWithRequest:completionHandler:)。