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

时间:2024-01-04 19:46:38

来源: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:
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学习笔记 利用协议实现回调函数的内容介绍完了,希望本文对你有所帮助。