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

  • 相关阅读:
    浮于文字上方的图片如何设置居中
    grub4dos_BIOS和grub4dos_UEFI编译环境搭建(ubuntu14.04)
    微信小程序开发——开发小技巧集锦
    vue+Better-scroll实现滚动位置保持并对页面切换效果进行优化
    谈谈fork/join实现原理
    ES系列(七):多节点任务的高效分发与收集实现
    JVM系列(五):gc实现概要01
    谈谈stream的运行原理
    ES系列(六):search处理过程实现1框架
    ES系列(五):获取单条数据get处理过程实现
  • 原文地址:https://www.cnblogs.com/moonvan/p/2228634.html
Copyright © 2011-2022 走看看