为什么80%的码农都做不了架构师?>>>
Protocol是什么?它是一份协议,上面有一些列协议的特权,只要你遵守了此协议,你便可以使用协议上面的特权了,从而让你跟别人不同。
比如你和大家都是QQ用户,QQ那有一份QQMumber(QQ会员)的协议,当你每个月交了10元(遵守了这份协议),你便是QQ会员了,协议上有许多特权供你使用,比如昵称变红,有VIP标志。
那我们要怎么制定一份协议呢,我们新建文件,定义一个QQMumberProtocol的协议:
我们会发现只有一个.h文件,是的,协议里只能声明方法,不能声明成员变量。
之后我们如果要让QQUser(QQ用户)这个类成为QQMumber(QQ会员)的话,就要遵守这份协议,那要怎么遵守呢,当然是每个月交10元啦哈哈。
遵守之后你便会发现,Xcode便会报出警告,你没实现协议里的方法,这年头,包个会员还要主动让自己的昵称变红
是的,这些特权是必须实现的,也是默认的,当然,协议里也有让用户选择实现的特权,比如看下面的更换QQ秀(changeQQShow),我们会发现没实现changeQQShow方法,Xcode也不会发出警告
最后我们实例化一个QQ用户,他已经遵守了QQ会员协议,于是他便可以调用这份协议里的特权。