Objective-C学习笔记 利用协议实现回调函数

来源:http://mobile.51cto.com/iphone-278354.htm

Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然后经过3秒钟测试文字变为回调函数文字。相应的截图如下:

Objective-C学习笔记 利用协议实现回调函数 

Objective-C学习笔记 利用协议实现回调函数

实现的代码如下:

定义协议:

#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 

小结:Objective-C学习笔记 利用协议实现回调函数的内容介绍完了,希望本文对你有所帮助。

 

posted @ 2014-05-16 10:33  sunminmin2011  阅读(249)  评论(0编辑  收藏  举报