Block 小记

简介

Block 是C语言级的语法也是一个运行时特性。它和C语言的标准函数很相似,但是在有可执行的代码块的基础上它还有将变量保存到栈或者堆上的能力。因此Block持有了一组“状态值”(即前面说的变量)来确保执行的结果。

语法

block的用法比较多样,下面根据具体的用法都来看一下怎么样声明

As a local variable:

returnType(^blockName)(parameterTypes) = ^returnType(parameters) {...};

As a property:

@property (nonatomic, copy)returnType(^blockName)(parameterTypes);

As a method parameter:

-(void)someMethodThatTakesABlock:(returnType(^)(parameterTypes))blockName;

As an argument to a method call

[someObject someMethodThatTakesABlock:^returnType(parameters) {...}];

As a typedef:

typedefreturnType(^TypeName)(parameterTypes);

TypeNameblockName = ^returnType(parameters) {...};

上面给出了Block不同身份时的不同声明方式,当然这是返回值和参数都有的情况,如果没有的话还可以简写。

特点和用途

block由于下面两个特点很适合作为回调

1.调用函数时就可以书写函数执行完之后要执行的代码

2.能访问本地变量(这点非常值得注意)

参考链接

https://developer.apple.com

http://goshdarnblocksyntax.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本篇文章并不会剖析block的原理,笔者对原理也不甚了解。 声明:对某个属性的访问(access)包括getter...
    VV木公子阅读 4,804评论 1 18
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,516评论 9 118
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,470评论 1 10
  • 看到一个网站http://fuckingblocksyntax.com/ 简单总结了Block的语法。 网站名很...
    陈炳桦阅读 3,602评论 0 0
  • 眼看2017进入倒计时了,回想起这一年从懵懂混沌到渴望成长,我不停奔跑,我从不拒绝各种关于学习成长的信息,...
    水掰掰213阅读 3,621评论 1 4

友情链接更多精彩内容