实现一个显示文字为测试的视图,然后经过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
|
请发表评论