什么是协议?
协议是一些类公有方法的抽离合并。例如,鸡,鸭,狗,猫这几个类,虽然它们有多属性都不相同,不同的外观,不同的走路方式。但是也有共同点,比如,它们都会叫,鸡是咯咯叫,鸭是嘎嘎叫,狗是汪汪叫,猫是喵喵叫,虽然叫声不同。但叫这个事是他们公有的方法,我们就可以把叫这个方法抽离出来作为协议,遵从这个协议,遵从叫这个协议的动物就可以称为会叫的动物。叫这个协议并不关心这个动物具体是喵喵叫还是嘎嘎叫,它只是声明有且必须有这个方法。
协议的结构。
@protocol InteractionProtocol <NSObject>
-(void)bleat;
@end
@protocol:表明该文件为协议文件
InteractionProtocol:协议的名称
<NSObject>:表示该协议服从名为NSObject的协议
@end:表示文件结束
-(void)bleat:该协议定义了一个名为bleat的方法,该方法未用"@optional"修饰,则该方法默认修饰词"@required",默认为必须实现的方法。若用"@optional"则说明该方法为可选方法,非必须实现。
@protocol InteractionProtocol <NSObject>
@optional
-(void)bleat;
@end
协议的使用
编写一个Cat类,并服从InteractionProtocol协议
@interface Cat : NSObject<InteractionProtocol>
@end
然后在Cat类的实现文件里实现协议的方法
-(void)bleat{
NSLog(@"小猫喵喵叫");
}
在main函数中实例化该类并调用该方法
Cat *cat = [Cat new];
[cat bleat];
运行结果:

网友评论