什么使函数aysnc或swift同步?

时间:2017-08-06 11:06:02

标签: swift asynchronous

我看到URLSession.dataTask(with:completionHandler:)异步功能,而Data(contentsOf:)同步功能。是什么让这些功能异步同步

1 个答案:

答案 0 :(得分:2)

方法/方法调用始终是同步的。但是某些方法以异步方式表现意味着即使在方法完成/返回之后仍然有工作要做。

方法的定义中没有任何内容表明它是否表现得如此。事实上有一个completionHandler 提示,该方法可能正在进行一些异步工作,但不能保证并且缺少completionHandler也不能保证该方法不会执行某些异步工作。 如果方法接受完成处理程序并执行一些异步工作,并且在方法返回后将调用completionHandler,那么闭包参数必须有@escaping

结论:你必须阅读文档和/或查看方法的实现,以了解它的作用。