iOS 代理和协议使用

2021-03-24  本文已影响0人  Nothing_xy

使用

//必要要实现NSObject协议
@protocol BreakerDelegate <NSObject>
//必须要实现的方法
@required
- (void)gatewayStatusWithDic:(NSDictionary *)dic;
- (void)breakerStatusWithDic:(NSDictionary *)dic;
- (void)subscribeStatusWithDic:(NSDictionary *)dic;
- (void)unSubscribeStatusWithDic:(NSDictionary *)dic;
@optional//可选的方法
@end

//编写代理
@property(weak, nonatomic)id<BreakerDelegate> delegate;
//实现代理
@interface ViewController ()<BreakerDelegate>
//设置代理
[Breaker sharedInstance].delegate = self;

//respondsToSelector,可以用这个方法来判断有没有实现某个方法

代理模式

相关面试题

代理反向传值

//必要要实现NSObject协议
@protocol BreakerDelegate <NSObject>
//必须要实现的方法
@required
- (void)setValue:(NSString *)string;
 @optional//可选的方法
 @end

  //编写代理
 @property(weak, nonatomic)id<BreakerDelegate> delegate;

  //判断代理中的方法是否被实现,避免未被实现代理的程序崩溃
  if ([self.delegate respondsToSelector:@selector(setValue:)])
  {
      [self.delegate setValue:@"123"];
  }
   
   

 //实现代理
 @interface ViewController ()<BreakerDelegate>
//设置代理
 [Breaker sharedInstance].delegate = self;

//实现委托方法,即实现的setValue方法

- (void)setValue:(NSString *)string
{
  NSLog(@"A接收到B数据%@",string);

}
//respondsToSelector,可以用这个方法来判断有没有实现某个方法
上一篇 下一篇

猜你喜欢

热点阅读