美文网首页
有关block的理解

有关block的理解

作者: WarmLikeYou | 来源:发表于2016-09-06 10:22 被阅读31次

首先是特点:
1.block是C语言的。
2.block是一种数据类型,可以当作参数传递,也可以当作返回值。
3.是预先准备好的代码,在需要的时候执行。
定义:
返回类型(^blockName)(参数列表) = ^返回类型(参数列表){///代码实现}
void(^blockName)(参数列表) = ^(参数列表){///代码实现}
void(^blockName)() = ^ {///代码实现}
速记代码块: inlineBlock
如果引用外部变量:
在定义block时,如果使用了外部变量,block内部会默认对外部变量做一次copy
默认情况下,不允许在block内部修改外部变量的值
在外部变量声明时,使用__block修饰符,则可以在block内部修改外部变量的值
数组的遍历:
enumerateObjectsUsingBlock:
所有的参数都已经准备到位,可以直接使用
效率比for高,官方推荐使用
数组的排序:
sortedArrayUsingComparator:
升序/降序/乱序
block的方法重构注意:
相同的代码只出现一次。
当方法需要调整时,只需要调整一个地方即可。
方法重构一定要小步走。
每一次修改都必须测试,因为任何修改都有可能出现错误。

使用block会造成self循环引用。
使用block需要使用弱指针,否则会出现循环引用。
在MRC中注意 Block_copy&Block_release。

相关文章

  • 有关block的理解

    首先是特点:1.block是C语言的。2.block是一种数据类型,可以当作参数传递,也可以当作返回值。3.是预先...

  • 有关block

    +++Categories = ["iOS",]Tags = ["iOS","block",]date = "20...

  • Block原理探究(上篇)-Block本质及存储域问题

    主要内容:1.理解Block的本质2.理解Block的存储域分类3.理解Block的Copy原理 一、探究Bloc...

  • iOS Swift 模型数组排序(仿写 sortedArrayU

    目的:为了加深对 block 的理解 个人理解:block 的返回值 NSComparisonResult 略带有...

  • block用法大全

    block语句块 如何解决block循环引用 高逼格理解block循环引用 block相关

  • block 的理解

    block语法 ^ 返回值类型 ( 参数列表 ) {表达式}; 返回值类型可省略: block的声明:返回值类型...

  • block的理解

    block的理解参照文章http://www.cnblogs.com/flyFreeZn/p/4264220.ht...

  • block的理解

    1..block的原理是什么?本质是什么? block本质上也是一个OC对象,它内部也有个isa指针,block是...

  • block 的理解

    实质上Block也是一个对象 二、内存分配区域: OC中的各个主要的内存分配区域:包括有--栈区、堆区、常量区、全...

  • Block的理解

    一、block的本质 block本质上也是一个OC对象,它内部也有一个isa指针block是封装了函数调用以及函数...

网友评论

      本文标题:有关block的理解

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