1、CoreManage.h

#import <Foundation/Foundation.h>

@protocol SampleProtocol;

//声明核心类的属性和方法
@interface CoreManage : NSObject @property(nonatomic,assign) id<SampleProtocol> delegate; - (void)doMainWork; @end //声明协议中的接口函数
@protocol SampleProtocol <NSObject> @required
- (void)innerTaskCallBack:(int) innerTaskSerialNo; @optional
- (void)resultDisplayCallBack:(NSString *)backInfo; @end

  2、CoreManage.m

#import "CoreManage.h"

@implementation CoreManage

@synthesize delegate=_delegate;
- (void)doMainWork
{
NSLog(@"核心类完成工序0");
NSLog(@"核心类完成工序1");
[self.delegate innerTaskCallBack:2];//工序2通过外部类回调函数完成
NSLog(@"核心类完成工序3");
[self.delegate resultDisplayCallBack:@"成功"];//通过外部类回调函数显示任务完成结果
} @end

  3、OuterClass.h

#import <Foundation/Foundation.h>
#import "CoreManage.h" @interface OuterClass : NSObject<SampleProtocol> - (void)run; @end

  4、OuterClass.m

#import "OuterClass.h"

@implementation OuterClass

- (void)run
{
CoreManage *coreManage=[[CoreManage alloc] init];
coreManage.delegate=self;
[coreManage doMainWork];
} //回调函数1
- (void)innerTaskCallBack:(int) innerTaskSerialNo{
NSLog(@"外部类的回调函数,完成工序%d",innerTaskSerialNo);
} //回调函数2
- (void)resultDisplayCallBack:(NSString *)backInfo{
NSLog(@"外部类的回调函数,输出完成结果:%@",backInfo);
} @end

回调的代理(delegate)实现的更多相关文章

  1. 协议(Protocol) 和代理(Delegate)

    1.概念与组成 delegate是iOS中一种常见的设计模式,是一种消息传递的的方式,常见的消息传递方式还有以下几种: 通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式. ...

  2. iOS基础 - UITableView的数据源(dataSource)和代理(delegate)

    UITableView的数据源(dataSource)和代理(delegate) UITableView需要一个数据源(dataSource)来显示数据,UITableView会向数据源查询一共有多少 ...

  3. IOS回调机制——代理,通知中心以及Block

    Xcode5.0正式版 IOS7和Xcode5正式版在昨天正式可以下载.IOS7不多说了,交互设计,界面风格,操作的简化程度都属于比较领先的水平. 这里来说说Xcode5正式版,和以前的Xcode5测 ...

  4. iOS 的一点理解(一) 代理delegate

    做了一年的iOS,想记录自己对知识点的一点理解. 第一篇,想记录一下iOS中delegate(委托,也有人称作代理)的理解吧. 故名思议,delegate就是代理的含义, 一件事情自己不方便做,然后交 ...

  5. 浅谈iOS开发的协议(protocol)和代理(delegate)

    协议和代理对于一个新手来说确实不讨好理解,也有很多的iOS开发的老手对此是懂非懂的.网上的很多博文只是讲了怎么使用,并没有说的很明白.下面我谈一下我的理解. 1.你要先搞明白,协议和代理为什么会出现, ...

  6. 代理Delegate的小应用(代理日期控件和下拉框)

    前言 在平时关于表格一类的的控件使用中,不可避免需要修改每个Item的值,通过在Item中嵌入不同的控件对编辑的内容进行限定,然而在表格的Item中插入的控件始终显示,当表格中item项很多的时候,会 ...

  7. 代理delegate、NSNotification、KVO在开发中的抉择

    在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation: 2.通 ...

  8. swift -- 代理delegate

    1.声明协议 protocol SecondDelagate { func sendValue(text : String!) -> Void } 2.声明代理属性 var delegate : ...

  9. 代理delegate

    1>代理的用处是什么? 监听那些不能通过addTarget监听的事件 主要用开负责在两个对象之间,发生某些事件时,传递或发送消息 当我们需要 监听某些事件时,但苹果没有提供相关监听方法(addt ...

随机推荐

  1. eclispe报错PermGen space

    最近使用eclipse做开发,使用的服务器是tomcat,但在启动时报了Caused by: java.lang.OutOfMemoryError: PermGen space的异常. 这个错误很常见 ...

  2. 分享Kali Linux 2016.2最新镜像201609

    分享Kali Linux 2016.2最新镜像20160919   Kali Linux官方继9月9日发布Kali Linux 2016.2的第36周镜像W36后,9月19日发布了Kali Linux ...

  3. 移动开单软件 手持PDA开单扫描打印系统开发介绍

    具体功能预览--(图示) PDA开单打印扫描采集器主程序: ▲门店使用:接单员销售开单.销售退货或查询相关资料. ▲仓库使用:PDA仓库验收货.发货.仓库盘点 ▲在外业务开单:业务在外面开销售单.销售 ...

  4. struts2总结四:Action与Form表单的交互

    struts2 Action获取表单数据的方式有三种:1.通过属性驱动的方式.2.模型驱动方式.3.使用多个model对象的属性. 1.通过属性驱动式 首先在jsp里面编写form表单的代码如下: & ...

  5. HDU3996 Gold Mine(最大权闭合子图)

    #include<cstdio> #include<cstring> #include<queue> #include<algorithm> using ...

  6. BZOJ3103 : Palindromic Equivalence

    用Manacher可以推出O(n)对相等和不等关系. 将相等的用并查集维护,不等的连边. 然后从1到n,如果该等价类还没被考虑过,则ans*=26-与它不等的考虑过的等价类个数. #include&l ...

  7. 关于求解不定方程的n(n-1)=2m(m-1)的解法的总结

    主要参考下面两篇论文 1.<不定方程x(x-1)=Dy(y-1)的解法> 2.<用递推公式求一个不定方程的正整数解> 原有题目意思是 记得有一次全班去唱K, 其中有个活动是情歌 ...

  8. [BZOJ 3759]Hungergame

    Nim游戏获胜的条件是所有石子的异或和为0 如果先手要获胜,那么一定是打开了一个异或和为0的极大子集 什么是极大子集呢? 就是无论后手打开任何子集的箱子,都不能再使此时打开的箱子异或和为0. 容易证明 ...

  9. edtftpj让Java上传FTP文件支持断点续传

    在用Java实现FTP上传文件功能时,特别是上传大文件的时候,可以需要这样的功能:程序在上传的过程中意外终止了,文件传了一大半,想从断掉了地方继续传:或者想做类似迅雷下载类似的功能,文件太大,今天传一 ...

  10. 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    package liu0915; import java.util.Random; public class Test0915sz { public static void main(String[] ...