6.3 使用协议(protocol)进行方法的声明 [Swift教程]

1. 本节课将为你解析协议的使用方法。协议规定了用来实现某个功能所需要的方法和属性。协议能够被类、结构体等具体实现(或遵守)。

image

2. 协议定义了方法的蓝图,属性和其它适合特定任务或功能的要求。定义协议与定义类、结构和枚举非常相似。

image

3. 然后在两个大括号之间,填写协议的内容。这里声明了一个方法,它被视为协议定义的一部分,跟普通实例和类型方法完全一样,但是没有方法体。

image

4. 使用相同的方式,定义另一个名为Eating的协议。

image

5. 协议可以遵守另一个协议,将需要遵守的协议名称放在当前协议名称的后方,之间使用冒号进行分隔。

image

6. 接着定义了一个类,并使该类遵循两个协议,类名和协议名称之间仍然使用冒号进行分隔,而协议名称之间则使用逗号进行分隔。

image

7. 从错误提示可以看出,当前的类,需要实现协议中声明的三个方法。点击修复按钮,系统将自动补充需要遵守的方法。

image

8. 接着依次实现三个来自协议的方法。

image

9. 在第一个方法中输出相应的日志语句。

image

10. 在第二个方法中输出相应的日志语句。

image

11. 最后在第三个方法中输出相应的日志语句。

image

12. 给当前的类添加一个名称属性,并设置它的默认值。

image

13. 继续添加另外两个属性,分别表示年龄和伤害值。

image

14. 添加一个实例方法,并在控制台输出相应的日志。该方法并不是来自协议的方法。

image

15. 接着初始化一个类的实例。

image

16. 然后查看实例的伤害属性的值为10。

image

17. 调用实例的协议方法,从第25行代码右侧的结果可以看出,该方法被正确调用。

image

18. 然后依次调用其它的方法,接着点击底部的显示调试区图标,打开控制台。

image

19. 在控制台输出了由被调用方法打印的日志。

image

20. 对类进行扩展,同样可以实现类似的功能增强。继续对动物类进行扩展。

image

21. 然后添加一个浮点类型的扩展属性,当访问该属性时,返回特定的值。

image

22. 接着添加一个扩展方法,当调用该方法时,返回特定的值。

image

23. 初始化一个类的实例。然后点击右侧的显示结果图标,查看该实例对象的详细内容。

image

24. 继续编写代码,调用类的方法。

image

25. 调用类的自定义方法。

image

26. 最后调用类的扩展方法,以扩展的方式,实现了和协议类似的功能。

image

image

本文整理自:《Swift4互动教程》,真正的[手把手]教学模式,用最快的速度上手iOS开发和Swift语言,苹果商店App Store免费下载:https://itunes.apple.com/cn/app/id1320746678,或扫描本页底部的二维码。课程配套素材下载地址:资料下载

你可能感兴趣的:(6.3 使用协议(protocol)进行方法的声明 [Swift教程])