Protocol(协议)
Protocol在iOS中常见,协议是一套标准,类似于一个单子,上面写有一些要去完成的事,就看谁去签这个协议,如果谁签协议,那么它就要实现(完成)协议上要求完成的东西。
创建Protocol,command+N,选择objective-c file,然后file中写协议名字,file type选择protocol。即可生成一个.h文件。
所有的协议在这个.h文件中声明即可。
协议的声明,以@protocol开始,以@end结束,里边放一些需要实现的方法,这些方法,用@required(必须实现)和@optional(可实现,可不用实现)来修饰。
@protocol 协议名字 <NSObject>,NSObject放在<>号内,则不再是类,而是协议。
一个例子:
MyProtocol.h(写协议)
#import <Foundation/Foundation.h> //声明协议 @protocol MyProtocol <NSObject>//放在<>里的NSObject已经不是一个类,而是一个协议 @required//要求必须的。必须实现 - (void)eating; - (void)drinking; @optional//可选。可选实现 - (void)shopping; @end |
Student.h(签协议)
#import <Foundation/Foundation.h> #import "MyProtocol.h"//引入协议 @interface Student : NSObject<MyProtocol>//签协议 @end |
Student.m(实现协议内容)
#import "Student.h" @implementation Student - (void)eating{ } - (void)drinking{ } - (void)shopping{ } @end |
main.m执行协议
#import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { Student *s1 = [[Student alloc]init]; [s1 eating]; [s1 drinking]; [s1 shopping]; } return 0; } |