协议

面向协议的编程 一般只有声明 没有实现 因此只有.h文件 (如果声明在某一个类的话 回在.m中实现)

基本用途 协议也可继承协议 (两个协议中的方法名可相同 只要实现一个就可)

1.可以声明一大堆方法

2.只要是某个类遵守了这个协议 就相当于拥有了这个协议声明的方法

3.只要父类遵守了某个协议 就相当于子类也遵守了这个协议

4.一个类可以遵守多个协议(相当于多继承)

@protocol 协议名称<NSObject>

//声明方法

@required 必须实现的

@optional 可选择的

@end

定义对象和属性的时候 可直接指定 遵守某个协议  然后这个对象或属性就可以实现协议中的方法

eg:

Person <MyProtocol> *person = [Person new];

@property id<MyProtocol>delegate;

原文地址:https://www.cnblogs.com/dlwj/p/6624853.html