代理的回调的例子

/*

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

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

委托方: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

时间: 2024-10-21 11:40:42

代理的回调的例子的相关文章

一个简单的回调(例子)

1.声明一个回调Interface: public interface CallBack { /** * 执行回调方法 * @param objects 将处理后的结果作为参数返回给回调方法 */ public void execute(Object... objects ); } 2.回调的地方继承回调,实现回调的方法: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe

block回调具体例子

//main.m ////  main.m//  回调////  Created by hehe on 15/9/10.//  Copyright (c) 2015年 wang.hehe. All rights reserved.// #import <Foundation/Foundation.h>#import "Employee.h"#import "Company.h" int main(int argc, const char * argv[]

委托和回调函数例子

其实,回调函数就是把方法当做一个参数传入其它方法中,就算直接传递方法名,那宿主方法该用什么来接收这个方法名呢?(比较绕,其实我们知道,如果参数传入"zhangsan",在宿主方法中可以用string来接收它.传入3,可以用int来接收它).聪明的您一定想到了,传入方法,就用委托来接收它. 啥都不说了,例子是最好的老师! public delegate void OutPutMsgHandler(string name); /// <summary> /// 入口类 ///

用代理实现多态的例子

/* 代理:....................................................................................... [委托方]主动方 持有带协议的id指针,可以使用协议. [代理方]被动方 遵从协议,实现方法. 代理:....................................................................................... */ //main.m #impo

android技巧(五)一个异步+接口回调的例子

public class DataBaseUtils { // 当前数据库地址 private String DB_PATH; // 备份后数据库保存地址 private String DB_BACKUP_PATH; private Context context; private MessageShow ms; // 备份成功状态 private final int BACKUP_OK = 1; // 备份失败状态 private final int BACKUP_FAIL = -1; //

一个简单的jQuery回调函数例子

jQuery回调函数简单使用 比如说,我们想要点击某个按钮后触发事件, 先把一些指定内容给隐藏掉, 然后跳出相关信息的对话框. 如果使用普通的方法, 不用回调函数的话, 会有怎么样的效果呢? 效果是先弹出对话框再隐藏内容, 然后再隐藏指定内容. 这显然不是我们想要的效果, 如果使用回调函数,就可以解决这个问题. 当然,回调函数功能远不只这么简单…… 具体的代码如下: [html] view plain copy <%@ page language="java" import=&q

React ref回调函数例子

ref属性也可以是一个回调函数而不是一个名字.   这个函数将要在组件被挂载之后立即执行. 这个参照的组件将会作为该函数的参数,这个函数可以立即使用这个组件参数,当然也可以将其保存供以后使用. 当这个参照组件被卸载并且这个ref改变的时候,先前的ref的参数值将为null.这将有效的防止了内存的泄露. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">

JAVA异步加回调的例子

package com.sunchao.callback; /** * callback interface * @author Administrator * */ public interface CallBack { /** * execute the callback method * @param objects make the asyn execute result as the parameter of callback method */ public void execute

js回调小例子

$(function () { let db = ''; (function () { // 定义一个匿名自执行函数 getInfo(function (ret) { // 执行 getInfo 函数,并将一个匿名函数当做参数传递过去 alert(ret); console.log(db); }) })() function getInfo(callback) { $.ajax({ url: 'http://api.douban.com/v2/movie/top250', async: true