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

    实现的代码如下:

    定义协议:

     1 #import <UIKit/UIKit.h>
     2 @protocol NoteDelegate
     3 //回调函数
     4 -(void)messageCallBack:(NSString *)string;
     5 @end
     6 //调用协议
     7     #import <Foundation/Foundation.h>
     8     #import "NoteDelegate.h"
     9     @interface ManagerMessage : NSObject {
    10         id<NoteDelegate> *noteDelegate;
    11     }
    12     @property (nonatomic,retain) id<NoteDelegate> *noteDelegate;
    13     -(void)startThread;
    14     @end
     1 #import "ManagerMessage.h"
     2     @implementation ManagerMessage
     3     @synthesize noteDelegate;
     4     //开始一个线程
     5     -(void)startThread
     6     {
     7 
     8         [NSTimer scheduledTimerWithTimeInterval:3
     9                                          target:self
    10                                        selector:@selector(targetMethod:)
    11                                        userInfo:nil
    12                                         repeats:NO];
    13     }
    14     -(void)targetMethod:(NSString *)string
    15     {
    16         if (self.noteDelegate!=nil) {
    17             //完成线程 调用回调函数
    18             [self.noteDelegate messageCallBack:@"回调函数"];
    19             }
    20     }
    21     @end

    前台页面实现:

     1     #import "IphoneDeleteViewController.h"
     2     #import "ManagerMessage.h"
     3     @implementation IphoneDeleteViewController
     4     @synthesize textView;
     5 
     6     //回调函数
     7     -(void)messageCallBack:(NSString *)string
     8     {
     9         self.textView.text=string;
    10     }
    11 
    12     - (void)viewDidLoad {
    13         [super viewDidLoad];
    14         self.textView.text=@"测试";
    15         ManagerMessage *message=[[ManagerMessage alloc] init];
    16         //通知调用协议
    17         message.noteDelegate=self;
    18         [message startThread];
    19         [message release];
    20     }
    21 
    22     - (void)didReceiveMemoryWarning {
    23         [super didReceiveMemoryWarning];
    24     }
    25 
    26     - (void)viewDidUnload {
    27         self.textView=nil;
    28     }
    29 
    30     - (void)dealloc {
    31         [self.textView release];
    32         [super dealloc];
    33     }
    34 
    35     @end

    通过以上几步我们基本可以实现回调函数的实现

  • 相关阅读:
    shell脚本根据端口号kill掉进程
    使用netstat -ano 查看机器端口的占用情况(windows环境)
    分享一两个小工具,
    将压缩文件伪装图片格式文件以及将python文件转化为exe文件(测试完,真的有效)
    celery 异步任务 周期任务 定时任务的实现
    wsgi、uwsgi、asgi协议的关系
    centos7忘记密码更改步骤
    工作遇到的坑以及自己的学习悟道之道
    案例小集锦
    asp.net mvc部署
  • 原文地址:https://www.cnblogs.com/dinghing154/p/2622109.html
Copyright © 2011-2022 走看看