美文网首页iOS
Block 小记

Block 小记

作者: WarMap | 来源:发表于2016-03-25 11:49 被阅读21次

简介

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/

相关文章

  • block 小记

    block里面为什么要再次转化为强引用持有weak? sleep顺序很有关系: 1、如果调用test1后,异步bl...

  • Block 小记

    简介 Block 是C语言级的语法也是一个运行时特性。它和C语言的标准函数很相似,但是在有可执行的代码块的基础上它...

  • _ _block小记

    1)默认情况 对于 block 外的变量引用,block 默认是将其复制到其数据结构中来实现访问的。也就是说blo...

  • ios Block小记

    Block函数如果没有访问局部变量或者全局变量,block函数是存储在代码区的;否则会存储在栈区。但是ARC环境下...

  • 【iOS】block小记

    本篇文章并不会剖析block的原理,笔者对原理也不甚了解。 声明:对某个属性的访问(access)包括getter...

  • Block使用相关问题小记

    1、block做为属性为什么使用copy 首先,要明确的是在ARC下block作为属性采用copy和strong策...

  • iOS 由masory之Block小记

    函数式编程 TextBlock.h TextBlock.m

  • iOS开发之Block原理探究

    Block概述 Block本质 Block调用 Block分类 Block循环引用 Block原理探究 Block...

  • block的使用

    定义block 返回类型 (^block名称)(参数) = ^(){block内容}; 调用block block...

  • Block 02 - __block

    Block 02 - __block __block 的作用 __block 可以解决 Block 内部无法修改 ...

网友评论

    本文标题:Block 小记

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