美文网首页
Block(块)介绍之四:回调CallBack

Block(块)介绍之四:回调CallBack

作者: 赵亦晨 | 来源:发表于2016-10-22 01:50 被阅读0次

在iOS的开发过程中,Block的回调使用非常普遍,也是Block的重要用法之一。例如,当一段动画播放完成后,执行一段代码,当得到请求的网络数据后,执行一段对数据的操作代码等等。这些场景中,都使用到了Block的回调机制。Block的回调机制,可以使代码的编写变得十分的清晰,提升了代码的可读性。

1、定义带Block参数的方法

创建一个Task类,继承自NSObject;

在.h文件中,添加如下的方法,在该方法中,添加一个Block作为参数。其中,(void(^)(void))表示为一个没有参数和返回值的Block。

#import

@interfaceTask:NSObject

-(void)beginTaskWithCallbackBlock:(void(^)(void))callbackBlock;

@end

2、设置Block的回调时机

在.m文件中,实现该方法。下面的代码中,当方法被调用时,会打印一行Log,提示任务开始。3秒钟后,会调用Block中的代码。

#import "Task.h"

@implementationTask

-(void)beginTaskWithCallbackBlock:(void(^)(void))callbackBlock{

NSLog(@"Begin Task! After 3s Finish!");

dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(3.0*NSEC_PER_SEC)),dispatch_get_main_queue(),^{

callbackBlock();

});

}

@end

3、使用Block定义动作/行为

在上面一段代码的实现过程中,最关键的是定义了Block的调用时机,但没有定义Block的代码内容。Block中的代码内容,可以在使用该方法时进行赋值。在下面的代码中,当执行到Block时,打印一行日志,提示任务完成。

Task*task=[[Taskalloc]init];

[task beginTaskWithCallbackBlock:^{

NSLog(@"Task End!");

}];

相关文章

  • Block(块)介绍之四:回调CallBack

    在iOS的开发过程中,Block的回调使用非常普遍,也是Block的重要用法之一。例如,当一段动画播放完成后,执行...

  • block 和 ReactiveCocoa的理解(一)

    1. block的最大用处:回调(callback) 虽然接触iOS已经8个月了,block 作为Objectiv...

  • 将CallBack改写成Promise

    CallBack回调函数是js的特色之一, 但CallBack回调方法, 非常容易造成回调地狱(callback ...

  • JS异步-解决方法简述

    介绍三种异步处理方案: 回调函数(callback)promiseasync/await 回调函数(callbac...

  • JavaScript系列之回调函数callback

    JavaScript系列之回调函数callback JavaScript回调函数的使用是很常见的,引用官方回调函数...

  • Callback、Promise、async/await

    一、Callback回调函数例子: callback函数应用举例: 就是通过callback回调函数来传回数据 缺...

  • 回调函数

    回调函数是什么 回调函数,简称回调(Callback),是指通过函数参数传递到其它代码的某一块可执行代码的引用。-...

  • 回调

    1. 同步回调 Callback Server Client 运行结果 2. 异步回调 Callback同上 Se...

  • iOS中block的用法

    定义block类型 定义block块,代码更清新 函数中定义block回调的方法 持续补充中......

  • block对外部变量的内存管理

    代码块在ios中通常用于回调,本文主要介绍block对外部变量的管理机制。我们知道如果要在block中使用bloc...

网友评论

      本文标题:Block(块)介绍之四:回调CallBack

      本文链接:https://www.haomeiwen.com/subject/lmncuttx.html