您的位置 首页 > 德语词汇

protocol是什么意思?用法、例句(Swift-技巧(十) Protocol 的灵活使用)

本篇文章给大家谈谈protocol是什么意思?用法、例句,以及Swift-技巧(十) Protocol 的灵活使用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

1、Protocol是Swift中实现面向协议编程思想的重要部分。在使用过程中有遇到协议中声明的部分,但是在遵守部分不需要实现的,那么就需要使用extension参与进来,让Protocol使用的更加灵活,得心应手。

2、Protocol是Swfit中重要的编程方式,也就是面向协议编程。主要就是为了解决继承过程中造成的多态情况。除此之外,在项目中也常用到代理中。

protocol是什么意思?用法、例句(Swift-技巧(十) Protocol 的灵活使用)

3、这里以遵守代理为例,来看一下Protocol在使用过程中可能遇到的问题,首先可以创建一个Protocol结构。

4、protocolCustomProtocol{\n}

在CustomProtocol结构中可以声明属性或者函数。这里声明一个name属性和running函数。

5、protocolCustomProtocol{\nvarname:String{getset}\n\nfuncrunning()\n}

创建一个Person的struct类型数据,遵守CustomProtocol协议。

6、structPerson:CustomProtocol{\n\n}

这时会报一个编译错误,大致意思就是Person结构体没有实现CustomProtocol协议中的属性或者方法。

7、一般遇到这样的错误,直接点击Fix,Xcode会帮你自动在Person中创建,然后你自己去设置一下就可以消除这个编译错误。

8、structPerson:CustomProtocol{\nvarname:String{\nget{"noname"}\nset{}\n}\nfuncrunning(){\nprint("runninguntilstop")\n}\n}

到这一步,就完成了protocol的使用操作,但是,如果我还有一个Person2的结构体类型也遵守协议,它只有name属性,没有running函数时,就依然报一个编译错误

9、这就太强迫人了,我就想做到想用就用,不想用就不用running函数,怎么做?

10、Swift给出的方案就是在protocol的extension中实现它

11、extensionCustomProtocol{\n\nfuncrunning(){\nprint("runningatCustomProtocol")\n}\n}

刚刚报的编译错误就消除了。这时,你就可以在Person2中想用就用,不想用就不用。

12、在protocol中声明的属性或者函数,当有struct或者class遵守时,就必须全部实现protocol中的属性或者函数。

13、若要遵守protocol的struct或者class自己决定属性或者函数实现与否,就要在protocol的extension中去先实现这些属性或者函数。之后再在struct或者class中实现就相当于重写的效果。

14、时间仓促,说的的东西可能不全面,在你查看的过程中遇到什么问题,评论区给我留言,我会尽快回复

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023