Protocol(协议)(二十)

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;

}

原文地址:https://www.cnblogs.com/DevinSMR/p/5118623.html