首页 > 其他 > 详细

回调的代理(delegate)实现

时间:2015-07-11 11:52:28      阅读:227      评论:0      收藏:0      [点我收藏+]

 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)实现

原文:http://www.cnblogs.com/changeUniversal/p/4638212.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!