您的位置:首页 > 移动开发 > IOS开发

OC_Delegate(代理)

2015-08-17 22:43 381 查看
有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..代理比较绕,要画图或者大脑中分离清除,滤清逻辑,就好理解了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS OC相关语法