• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C利用协议实现回调函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下:

 

实现的代码如下:

定义协议:

#import <UIKit/UIKit.h>
@protocol NoteDelegate
//回调函数
-(void)messageCallBack:(NSString *)string;
@end

 

调用协议:

#import <Foundation/Foundation.h>
#import "NoteDelegate.h"
@interface ManagerMessage : NSObject {
    id<NoteDelegate> *noteDelegate;
}
@property (nonatomic,retain) id<NoteDelegate> *noteDelegate;
-(void)startThread;
@end

#import "ManagerMessage.h"
@implementation ManagerMessage
@synthesize noteDelegate;
//开始一个线程
-(void)startThread
{

    [NSTimer scheduledTimerWithTimeInterval:3
                                     target:self
                                   selector:@selector(targetMethod:)
                                   userInfo:nil
                                    repeats:NO];
}
-(void)targetMethod:(NSString *)string
{
    if (self.noteDelegate!=nil) {
        //完成线程 调用回调函数
        [self.noteDelegate messageCallBack:@"回调函数"];
        }
}
@end

前台页面实现:

#import "IphoneDeleteViewController.h"
#import "ManagerMessage.h"
@implementation IphoneDeleteViewController
@synthesize textView;

//回调函数
-(void)messageCallBack:(NSString *)string
{
    self.textView.text=string;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.textView.text=@"测试";
    ManagerMessage *message=[[ManagerMessage alloc] init];
    //通知调用协议
    message.noteDelegate=self;
    [message startThread];
    [message release];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
    self.textView=nil;
}

- (void)dealloc {
    [self.textView release];
    [super dealloc];
}

@end


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++对数组进行复制发布时间:2022-07-14
下一篇:
C#readonly与const区别发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap