在iOS開發中經常要在兩個類之間進行通信,比如常見的時當一個View數據修改之後,需要在view的controller上做點壞事,這個時候就需要使用代理,一般代理都配合協議使用。
在定義協議時,可以通過@required與@optional來配置遵守這個協議必須去實現的方法和可以選擇的方法。
例如:
A類的事件需要通知B類,B成爲A的代理
A類中寫一個協議
@protocol XXDelegate <NSObject> @optional -(void) function_name:()A類 @interface A類 @property (nonatomic,weak) id <XXDelegate> delegate @end
在事件中調用
if([self.delegate respondToSelector:@selector(function_name:)]){ [self.delegate function_name:self]; }
在B類中聲明 <XXDelegate>
實現function_name 方法