Block

Block

Block 是C语言的扩充功能。是带有自动变量(局部变量)的匿名函数

Block 几种类型

1、_NSConcreteStackBlock 该类的对象Block设置在栈上
2、_NSConcreteGlobalBlock 与全局变量一样,设置在程序的数据区域(.data区)中
3、_NSConcreteMallocBlock 该类的对象设置在有malloc 函数分配的内存块(堆)中

什么时候栈上的Block会复制到堆呢

1、调用Block的copy 实例方法时
2、Block作为函数返回值返回时
3、将Block赋值给附有__strong 修饰符id 类型的类或 Block类型成员变量时;
4、在方法名中含有usingBlock 的 Cocoa框架方法或GCD 的API 中传递Block时。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容