概念:是一系列方法的列表,其中声明的方法可以被任意类实现。这种模式称为代理。和JAVA接口不同的是,Protocol可以不用被实现所有的方法。
使用场景:想要监听一些按钮的操作
1声明一个协议
//<>代表实现某个协议
@class Button;
@protocol ButtonDelegate <NSObject>
-(void)onClick:(Button *)btn;
@end
声明一个引用该协议个set方法
@interface Button : OSObject
//delegate就是按钮的监听器
@property (nonaomic,retain) id<ButtonDlegate> delegate;
@end
防止内存泄露
实现这个协议
@protocol ButtonDelegate;
@interface ButtonLisenter : NSObject <ButtonDelegate>
@end
@import "Button.h"
@implementation ButtonLisenter
- (void)onClick:(Button *)btn{
NSLog(@"这个按钮被点击了%@被点击了",btn);
}
@end
在main方法中调用它测试
原文:http://www.cnblogs.com/hqr9313/p/3515293.html