Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然后经过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
小结:Objective-C学习笔记 利用协议实现回调函数的内容介绍完了,希望本文对你有所帮助。