objective-c protocol协议

2018-04-10  本文已影响0人  一世长安乱

作用:声明一些方法

定义
@protocol 协议名称
//方法声明列表
@end
类遵守协议
和继承的区别
注意
  1. 协议只能声明方法,不能声明成员变量
  2. 子类会遵守父类遵守的协议
  3. OC中可以遵守多个协议(OC只能单继承,也就是不能继承多个父类)
  4. OC中的协议可以遵守其他协议,该协议就会自动包含遵守协议的声明
基协议

NSObject是基协议
建议每个新的协议都要遵守NSObject协议,但不遵守也没问题

@required和@optional
@protocol protocolName <NSObject>

@required //不实现方法会报警告
- (type)funname;
@optional //不实现不会报警告
- (type)funname;
协议的应用场景

//如果没有遵守协议就会报警告
classname<protocolname> *p = [[classname alloc] init];
```
- 注意:虽然在接受某一对象的时候,对这个对象进行了类型限定(限定他必须实现某个协议),但是并不意味着这个对象就真正的实现了该方法,所以每次在调用对象的协议方法时应该进行一次验证

上一篇 下一篇

猜你喜欢

热点阅读