myprotocol01.h
首先声明一个协议protocolTest,然后是声明函数(可以一个或者多个),协议的每个采用者必须实现这些函数。
#import <Foundation/Foundation.h>
//协议
@protocol protocolTest<NSObject>
-(void)PTmethod01:(NSString *)str;
-(void)PTmethod02:(NSString *)str;
@end
定义一个类,采用上面的协议,就要实现上面两个函数。
.h文件
#import <Foundation/Foundation.h>
#import "myprotocol01.h"
@interface myclass : NSObject<protocolTest>
@end
.m文件
#import "myclass.h"
@implementation myclass
-(void)PTmethod01:(NSString *)str{
NSLog(@"%@",str);
}
-(void)PTmethod02:(NSString *)str{
NSLog(@"%@",str);
}
@end
main.m中调用
myclass *mc=[[myclass alloc]init];
[mc PTmethod01:@"方法一"];
[mc PTmethod02:@"方法二"];
这个就是协议的好处,它可以很好的解决object-c只能单继承的问题,更多的扮演C++和java中接口的角色。