码迷,mamicode.com
首页 > 其他好文 > 详细

代理的回调的例子

时间:2015-09-08 08:24:05      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

/*

 

回调函数不是由该函数的实现方法直接调
用,而是在特定的事件或条件发生时由另外的一
方调用的,用于对该事件或条件进行响应。

 

回调:.......................................................................................

委托方:huangwenjia 遵从协议,实现回调的方法,设定代理方

代理方:wushentao持有协议id指针,用于设定委托方

回调………………………………………………………………

*/

//.main

#import <Foundation/Foundation.h>

#import "HuangWenJia.h"

#import "WuShenTao.h"

int main(int argc, const char * argv[]) {

    //创建了委托方

    HuangWenJia *huang=[[HuangWenJia alloc] init];

    //创建代理方

    WuShenTao *wu=[[WuShenTao alloc] init];

    //确立两者之间的代理关系

    huang.delegate=wu;

    wu.agent=huang;

    //处理打蚊子

    [huang doWork];

    return 0;

}

 //DaWenProtocol.h

//打蚊子的协议

 

#import <Foundation/Foundation.h>

 

@protocol DaWenProtocol <NSObject>

//回调方法的定义

//告诉委托方,我代理方打了几只蚊子

- (void)dawenNum:(int)num;

@end

 //HuangWenJia.h

//委托方

 

#import <Foundation/Foundation.h>

#import "DaWenProtocol.h"

#import "WuShenTao.h"

@interface HuangWenJia : NSObject<DaWenProtocol>

//设定他的代理方

@property (nonatomic,strong) WuShenTao *delegate;

//处理打蚊子

- (void)doWork;

@end

 //HuangWenJia.m

 

 

#import "HuangWenJia.h"

 

@implementation HuangWenJia

- (void)dawenNum:(int)num

{

    NSLog(@"我打了%d只蚊子",num);

}

- (void)doWork

{

    //把打蚊子的事情委托给代理方

    [self.delegate daWen];

}

@end

 //WuShenTao.h

//代理方

 

#import <Foundation/Foundation.h>

#import "DaWenProtocol.h"

@interface WuShenTao : NSObject

//设定委托方

//持有协议的id指针

@property (weak) id<DaWenProtocol> agent;

//打蚊子的方法

- (void)daWen;

@end

 //WuShenTao.m

 

 

#import "WuShenTao.h"

 

@implementation WuShenTao

- (void)daWen

{

    NSLog(@"开始打蚊子");

    //当蚊子打完的条件满足了,就需要把具体打的蚊子的数量反馈回委托方

    //回调

    [self.agent dawenNum:20];

}

@end

 

代理的回调的例子

标签:

原文地址:http://www.cnblogs.com/wanghengheng/p/4790519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!