• 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

  • 相关阅读:
    Ubuntu操作系统如何设置默认启动内核
    设置和取消环境变量
    vue create与vue init的区别
    base64 编解码
    获取url中的参数
    ubuntu账户密码正确但是登录不了怎么办
    斐波那契数列的递推式-----动态规划
    Round-Robin轮询调度法及其实现原理
    MySql中float类型的字段的查询
    使用 Python 从网页中提取主要文本内容
  • 原文地址:https://www.cnblogs.com/moonvan/p/2228634.html
Copyright © 2020-2023  润新知