回调的代理(delegate)实现

 1、CoreManage.h

回调的代理(delegate)实现
#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
回调的代理(delegate)实现

  2、CoreManage.m

回调的代理(delegate)实现
#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
回调的代理(delegate)实现

  3、OuterClass.h

回调的代理(delegate)实现
#import <Foundation/Foundation.h>
#import "CoreManage.h" @interface OuterClass : NSObject<SampleProtocol> - (void)run; @end
回调的代理(delegate)实现

  4、OuterClass.m

回调的代理(delegate)实现
#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
上一篇:【Android UI设计与开发】10:滑动菜单栏(二)SlidingMenu 动画效果的实现


下一篇:BannerDemo【图片轮播图控件】