1、protocol协议的基本用途:
(1)可以用来声明一大堆方法(不能声明成员变量)
(2)只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明。
(3)只要父类遵守了某个协议,就相当于子类也遵守了。
注意:协议内仅仅写方法声明,不能写实现,不能写成员变量
2、对协议的简单理解:
(1)protocol声明的方法可以交给任何类去实现。
(2)protocol的作用仅仅就是声明方法,所以新建协议就是.h文件。
(3)@protocol关键字表示声明协议,同样以@end结尾。例如:@protocol MyProtocol
@end
表示声明了一个名为MyProtocol的协议。
(4)@protocol声明的方法要交给类去实现,即类遵守协议。也就是说只要类遵守了这个协议,就相当于拥有了这个协议内的所有方法声明。(协议仅仅用来声明方法,以交给多个类去实现(去遵守))
(5)协议与分类一样只能写方法,不能声明成员变量。但是和分类不同的是协议只能写方法声明,分类是给某个类扩充一些方法。
3、类遵守协议的方式:
在类的.h文件中导入协议所在的.h文件,类遵守协议的格式是在类继承的父类之后用尖括号“<>”括住协议名。即如下所示
@interface 类名:父类名<协议名> @end;类遵守了一个协议就相当于没遵守协议之前把协议中声明的所有方法拷贝到类的声明之中。
4、正式协议与非正式协议简单介绍:
(1)在协议声明的方法之前加@required,表示要求实现,如果遵守了这个协议的类不实现@required标示的方法,就会出现警告。(仅仅警告,