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
- OC_Delegate(代理)
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- 代理
- Ubuntu完全教程
- 线索二叉树
- 迪杰斯特拉(最短路径)
- linux线程相关小结
- How Many Maos Does the Guanxi Worth 5137 (最短路+删点+最大边)
- OC_Delegate(代理)
- Daemon守护进程
- Java中Iterator(迭代器)的一般用法
- leetcode 134: Gas Station
- TeleTable( Data Structure { Trie && SegmentTree} )
- c++类的初创建(复数类)
- MCV中字典转模型的KVC底层实现
- Spring与Hibernate与Struts整合(一)配置文件
- 今日总结