# Protocol和Delegate简介
Protocol协议类似于Java中的接口,是一个自定义方法的集合,让遵守这个协议的类去实现为了达到某种功能的这些方法,Java中是必须选择实现的方法,Objective-C中可以通过@optional(可选)或者@required(必须实现)来控制。Delegate代理是一种设计模式,通过@protocol来实现,可以通过本类来远程操作(代理通知实现协议)其他类做出操作,完成一些任务。
协议中默认的都是@required类型,需要做成可选手动需要添加@optional类型来进行实现。以下是代码:
#import <UIKit/UIKit.h>
@protocol TGUnlockRecordDelegate <NSObject>
- (void)rankSwitchClick:(NSInteger)type;
@end
@interface TGUnlockRecordHead : UIView
@property (nonatomic, weak) id <TGUnlockRecordDelegate> delegate;
+ (instancetype)unlockRecordHead;
- (void)refreshOperateName:(NSString *)operateName operateImg:(NSString *)operateImg;
@end