Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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 如何运行n个异步函数并在它们全部完成时收到通知?_Ios_Swift_Grand Central Dispatch - Fatal编程技术网

Ios 如何运行n个异步函数并在它们全部完成时收到通知?

Ios 如何运行n个异步函数并在它们全部完成时收到通知?,ios,swift,grand-central-dispatch,Ios,Swift,Grand Central Dispatch,我使用在for循环中执行数量可变的请求,这些请求都是异步的。我需要找到一种方法,在所有请求完成(成功或失败)时得到通知,并收集其结果以进行处理。这类任务是否有内置的功能,或者可能有第三方库?我不确定它们是否是这类任务的功能,但您可以始终保留一个计数器,并在每次完成时将其递减,检查是否达到零。我不太了解iOS运行时,所以我不确定这种方法是否是线程安全的。假设Alamofire使用事件循环在单个线程中运行其所有操作,并且我的回调块不会同时运行,这样安全吗?您始终可以创建一个串行队列,并在回调块内部调

我使用在
for
循环中执行数量可变的请求,这些请求都是异步的。我需要找到一种方法,在所有请求完成(成功或失败)时得到通知,并收集其结果以进行处理。这类任务是否有内置的功能,或者可能有第三方库?

我不确定它们是否是这类任务的功能,但您可以始终保留一个计数器,并在每次完成时将其递减,检查是否达到零。

我不太了解iOS运行时,所以我不确定这种方法是否是线程安全的。假设Alamofire使用事件循环在单个线程中运行其所有操作,并且我的回调块不会同时运行,这样安全吗?您始终可以创建一个串行队列,并在回调块内部调度该队列以执行递减。在这种情况下,它们如何实现自己的线程并不重要。似乎默认管理器将在主队列上执行回调,这将使回调线程安全。计数器现在似乎正在工作。如果我们有任何竞争条件,我一定会检查串行队列功能。谢谢通知呢?他应该发布通知,并通过添加观察者来监控它