概念:是一系列方法的列表,其中聲明的方法能夠被任意類實現。這種模式稱爲代理。和JAVA接口不一樣的是,Protocol能夠不用被實現全部的方法。測試
使用場景:想要監聽一些按鈕的操做代理
1聲明一個協議接口
//<>表明實現某個協議內存
@class Button;it
@protocol ButtonDelegate <NSObject>io
-(void)onClick:(Button *)btn;class
@endimport
聲明一個引用該協議個set方法cli
@interface Button : OSObjectselect
//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方法中調用它測試