在函数执行代码之前,函数中的for循环是否已完成?

时间:2016-09-27 15:53:49

标签: ios swift function for-loop

如果我运行此代码:

 fanoutObj = fanoutPost(followersList.uid, followers: followersSnap, post: post)
 print(fanoutObj)

并且fanoutPost函数有一个非常长的for循环,那么在打印(fanoutObj)之前,函数中的所有代码(包括整个for循环)都会完成吗?

1 个答案:

答案 0 :(得分:1)

答案取决于for循环的位置:

  • 如果for循环直接位于函数体中,则答案为" yes",因为函数末尾或return语句的路径上的所有语句都必须在函数返回之前完成。
  • 如果for循环位于一个没有在函数本身中被调用的闭包中,被异步调用,或者在一个单独的队列中执行,那么答案是" no",因为只有回调的注册必须完成,而回调本身是单独运行的。

一种简单的方法是使用断点或调试输出来检查执行的相对顺序。