iOS 中的協議(protocol)和代理(delegate)
阿新 • • 發佈:2018-12-11
# 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