今天是我在简书中写笔记的第一天,就记录下swift中使用闭包进行传值的方法吧。
我是在2016年底开始使用swift开发iOS软件的,开始从OC转为swift的时候确实有很多的不习惯,不过直至现在,我觉得使用swift简直是一种享受。确实如官方所说,swift确实是一种很安全的语言。
在软件的开发中,传值是一个永远都无法避免的问题,传值的方法有很多。其余的开发我并不是很了解,在我使用OC和swift的过程中,我最开始喜欢使用OC的协议代理的方法传值。最后,我发现,协议与代理的方式传值有的时候很麻烦。比如一个简单的传值,如果再写一个协议与代理,然后传值还需要实现代理方法才能传值,实在是太麻烦了,所以我开始使用OC的block传值,感觉在某种程度上要比协议与代理容易很多,而且代码量少,很方便。使用swift之后,我便寻找swift中的block,然而,在swift中,block的概念并不存在,swift中叫做闭包。然后我开始使用swift的闭包进行传值。在现在进行的这个项目中,我没有写过一个协议方法,全部是使用闭包进行传值。也许是因为项目比较小,也可能是因为我的实力有限,无法了解协议与代理的强大与方便,也许是我还没有遇到必须使用协议与代理的地方,总之,我还没有在这个项目中使用协议与代理传值。
在本篇文章中,我说的使用的所有方法,仅仅局限于传值,并不涉及到其他的方面,如果说在其他方面有比使用闭包更好的方法,那也得留到以后再说。本文,仅限于传值。
废话了这么多,开始正题吧。
我接下来要做的就是使用闭包传值。
传一个值,代码如下
图1-1是传一个值的代码,打印的结果就是传过来的值,当然,这是在调用的方法中使用闭包,如果是在调用 的方法之后,执行了其他的方法,并且其他的方法中包含某些异步的操作之后再使用闭包传值是怎样做的呢?
接下来就上一个这样的代码:
我想,这个代码应该很容易看懂。页面启动后会调用test1类的一个方法testOne然后testOne会在延时3秒后调用testTwo这个方法,在testTwo这个方法中,我们使用闭包的方式将“这还是测试”这五个字传到需要这个值的地方。
接下来就是上一个传多个值的代码
如图1-3所示,解释就和图1-2一样,只是传的值不一样多罢了,需要传几个参数就写几个参数就行了。
好了,swift的闭包传值基本就是这样的了,由于技术与文采有限,而且是第一次写这种技术类的文章,写的不是特别好,见谅。