1. 程式人生 > >iOS 中的協議(protocol)和代理(delegate)

iOS 中的協議(protocol)和代理(delegate)

# 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