非正式协议是用来给NSObject以及其子类添加方法用的,使类的功能更丰富,interface定义的类就是非正式协议。
例如:
- #import <foundation foundation.h>
- @interface Sample:NSObject{}
- -(void) HelloWorld;
- @end
复制代码
并不遵守这个约定(即不实现这个方法),编译器会给出警告,但是还时会编译成功
正式协议就是你自己定义的以@protocol方式命名的方法列表
- @protocol animal
- @required //必须实现的方法
- -(void) eat:(NSString*) foodName;
- @optional //可以选择实现的方法
- -(void) play;
- @end
复制代码 |