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. 【分享送书】NGUI全面实践教程V3.8.2 活动开始了!!

    [分享送书]NGUI全面实践教程V3.8.2 活动开始了!! 活动奖品:   活动地址:http://dwz.cn/JHdlu

  2. http://www.open-open.com/lib/view/open1397274257325.html

    http://www.open-open.com/lib/view/open1397274257325.html

  3. 最短路(Bellman_Ford) POJ 3259 Wormholes

    题目传送门 /* 题意:一张有双方向连通和单方向连通的图,单方向的是负权值,问是否能回到过去(权值和为负) Bellman_Ford:循环n-1次松弛操作,再判断是否存在负权回路(因为如果有会一直减下 ...

  4. 密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案

    前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母.数字.字符3选2,区分大小写.对于设置得太简单的密码,予以错误提示.或者予以密码等级(低中高)显示, ...

  5. topcoder SRM 591 DIV2 TheArithmeticProgression

    #include <iostream> #include <cstdlib> using namespace std; class TheArithmeticProgressi ...

  6. CCSpriteBatchNode的优化性能

    当将大量精灵加载到CCLayer时,如果直接利用[self addChild:sprite]去加载,每加载一个精灵,都必须open,draw,close, 而利用 CCSpriteBatchNode去 ...

  7. Xcode 编辑时的爆炸效果

    Xcode 的爆炸效果 1.打开终端输入 $mkdir -p ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins;$curl ...

  8. TYVJ P1091 等差数列 Label:dp

    背景 广东汕头聿怀初中 Train#3 Problem 3 描述 等差数列的定义是一个数列S,它满足了(S[i]-S[i-1]) = d (i>1).显然的一个单独的数字或者两个数字也可以形成一 ...

  9. Windows下PHPUnit安装

    收藏的介绍地址 1.手动方式安装示例:http://blog.sina.com.cn/s/blog_5d3dc0110100ghlo.html2.通过Pear安装示例:blog.sina.com.cn ...

  10. 字体 font typograph

    https://en.wikipedia.org/wiki/Typeface *** 字体渲染 https://www.smashingmagazine.com/2012/04/a-closer-lo ...