完成处理程序:Swift

完成其他任务时执行。

介绍:

当我开始学习Swift时,我非常困惑一些概念完成处理程序就是其中之一。 在本文中,我将解释什么是完成处理程序及其工作方式以及为什么需要它。

在学习完成处理程序之前需要了解什么:

为了清楚地了解完成处理程序,我们需要了解闭包的基础,练习闭包,关于同步和异步功能的一点点知识。 您可以在这里聊天我发表的有关闭包的文章。

为什么我们需要完成处理程序:

在函数中,如果我们需要完成另一个任务之后再执行任何任务,而不是如何实现它。就像我们在完成下载后将更新UI那样,如何实现它? 换句话说,我们如何进行有序执行? 所有这些类型的问题解决了完成处理的概念。

制作完成处理程序:

创建一个完成处理程序闭包,然后将其传递给函数。

在这里,我们创建一个完成处理程序闭包,其类型为()→Void。现在,我们将创建一个可以使用此闭包的函数..

在这里,我们创建一个函数,该函数带有()→Void类型的参数。现在通过调用像这样的函数来实现此功能。

因此,必须先执行takeCompletehandler主体语句,而不是执行编译处理程序。 控制台将像。

  从函数主体 从完成处理程序开始! 

让我们举另一个例子:

让我们做一个从服务器下载数据,并在完成下载后给用户通知的功能。

首先创建下载功能。

下载完成后,此函数可以使用一个闭包和一个bool参数。完成处理程序参数取真值并发出通知。现在,让create和完成处理程序闭包将采用bool值,但不返回任何内容……

让我们实现功能

因此,它应该打印从服务器下载的数据..比打印“完全下载数据”要大100倍

  //打印此 
从sarver 下载数据...从sarver 下载数据...从sarver 下载数据...从sarver 下载数据 ...从sarver 下载数据...
...... 完整的下载数据

直接将Closure作为完成处理程序传递:

我们知道我们可以直接在函数参数上写闭包,所以让我们实现这个..

这也打印相同,完成处理程序将在下载完成后执行..并给出通知…

短手

我们也可以这样写得很短:

在这里,我们不使用参数,而是使用swift默认参数。

现在,如果我们使用Trilling闭包,我们也可以像这样使用

因此,最后我们很清楚,抱怨处理程序无非就是在函数中传递闭包,并在其他操作完成后使其执行。

通过完成处理程序传递数据:

我们可以通过完成处理程序传递数据。

首先创建一个可以接受类型([String])→无效的函数

让我们实现这个

现在,控制台应该比完成打印处理程序数组打印“做一些工作”十倍。

  做一些工作 做一些工作 做一些工作 做一些工作 
......
......
// 10次此 FinishDaily Swift

使用Trilling闭包和默认参数..的非常简写

  passingData {print(“传递的数据\($ 0 [0])”)} 

使用typealias:

首先输入typealias

  typealias compleatuionhandler =([[String])-> Void 

让我们创建功能

让我们用trilling闭包实现:

它应该打印下载文件10次,然后执行完成处理程序。

  下载文件下载文件 下载文件 下载文件 下载文件 完成完整的处理程序的工作 

结论:因此希望它清楚完成处理程序是如何工作的以及如何工作。感谢您与我在一起。如果有帮助,您别忘了分享给我鼓掌。

关于我:我是迅速的情人和iOS开发人员

我的链接在:https://www.linkedin.com/in/ekramulhoque/