zoukankan      html  css  js  c++  java
  • ObjectiveC利用协议实现回调函数

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

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

     

    image image

    实现的代码如下:

    定义协议:

    #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

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

     

    image image

    实现的代码如下:

    定义协议:

    #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

  • 相关阅读:
    Android · SQLite
    Android · 获取网络图片
    Android · 广告走灯
    Android · 动画
    Android常用资源
    Android · Fragment
    JSP 自动刷新
    JSP 点击量统计
    JSP 页面重定向
    JSP 日期处理
  • 原文地址:https://www.cnblogs.com/moonvan/p/2228634.html
Copyright © 2011-2022 走看看