美文网首页
block(一)了解block

block(一)了解block

作者: 周二头 | 来源:发表于2018-11-29 14:43 被阅读0次

block就是代码块组成的匿名函数,block是oc对于闭包的实现

1.可以嵌套定义,定义block方法和定义函数方法相似

2.block可以定义在方法内部或外部

3.只有调用block的时候,才会执行block内的代码

4.block本质是对象,使代码高聚合

定义block使用typedef

typedef  void(^KCBlock)(ViewController*);

block有三种类型

1.    __NSGlobalBlock__   静态block      全局

2.    __NSMallocBlock__   堆block         堆

3.    __NSStackBlock__   栈block           栈

!!全局块存在于全局内存中,相当于单例

!!栈块存在于栈内存中,超出其作用域则马上被销毁

!!堆块存在于堆内存中,是一个带引用计数的对象,需要自行管理其内存

int a = 10;//捕获外部变量

__block int a = 10;//__block修饰的可以在block内部修改a的值,__block是浅拷贝了一个值,内存地址改变了

//无参无返回block

void(^block)(void) = ^{

NSLog(@"hello block");

};//匿名函数

NSLog(@"第一种block%@",block);  //万物皆对象-->RAC万物皆signal

void(^twoblock)(void) = ^{

NSLog(@"hello block %d",a);

};//匿名函数

block();

twoblock();

NSLog(@"第二种block%@",twoblock);  

NSLog(@"第三种block:%@",^{

NSLog(@"%d",a);

});

相关文章

  • block(一)了解block

    block就是代码块组成的匿名函数,block是oc对于闭包的实现 1.可以嵌套定义,定义block方法和定义函数...

  • block底层那些你不知道的事

    如果block只掌握了怎么去应用,那了解了block的皮毛。若想要精通block,非得了解block的本质不行! ...

  • Block补充

    block声明/定义 block的作用:保存一段代码 添加block属性 block内存管理(非ARC) 首先了解...

  • iOS开发--当Block、代理、通知遇到女朋友

    什么是Block? 为什么使用Block? 怎么使用Block? 本文将从这三个问题入手来逐渐了解Block。 本...

  • [iOS]Block技术中的weak-strong

    本篇文章的主要内容 了解何谓block。 了解block的使用方法。Block 是iOS在4.0版本之后新增的程序...

  • block浅析

    对block的了解不是特别多,平常用代理用的比较多; Block写法:^(传入参数列){行为主体};Block实体...

  • iOS开发之Block原理探究

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

  • Block学习

    Block 让我们先来了解下Block是怎么定义的:返回值类型(^block变量名)(形参列表) = ^(形参列表...

  • Objective-C Block的剖析

    Block在开发中常用的,要想解决Block在开发中遇到的问题,我们需要了解Block的本质、截获变量的特性、__...

  • iOS Block(2)-block访问对象类型的auto变量

    前面的block讲解中,block访问的都是基本类型的变量,接下来我们了解一下block访问对象类型的auto变量...

网友评论

      本文标题:block(一)了解block

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