OC_Delegate(代理)

来源:互联网 发布:新浪微博怎么修改域名 编辑:程序博客网 时间:2024/05/29 15:31

A类,通过自己的一个方法影响B类,可以选择用代理(有些叫委托)

一、A做一个协议,协议里声明了一些方法

二、A类做一个属性,这个属性是遵守了自己协议的id属性

三、A类有一个触发的方法,在这个触发方法中,用自己的id属性调用协议中的方法


四、B类遵守触发类的协议

五、B类实现协议中的方法

六、B类实例化一个触发类的对象,并把自己self赋值给触发类的id属性


A.H@protocol ADelegate <NSObject>//声明协议-(void)logABC;@end@interface A : NSObject@property(nonatomic)id<BossDelegate>delegate;//A的一个属性-(void)beat;@end触发类.M-(void)beat{  //实现代理   [self.delegate logABC];}B.H#import "A.h”//包含A类头文件@interface B : NSObject<BossDelegate>//遵守到A类的协议@property(nonatomic)Boss *bigBoss;//A的一个对象-(void)bEvent;B.M-(void)logABC//A类的方法{    NSLog(@"A类触发了自己的log方法,我遵守了A的协议,我就要执行他的方法");}-(void)bEvent//实现和A类联系的方法{    self.bigBoss = [Boss alloc];    self.bigBoss.delegate = self;//将自己自己和A的代理协议属性关联起来}




补充:

1..还有常见的的经典的代理,如果使用各种控件的时候,你只有遵守了空间的代理协议,你才会在触发到控件某些操作时改变控件为你想要的效果

2..代理比较绕,要画图或者大脑中分离清除,滤清逻辑,就好理解了

1 0
原创粉丝点击