首页 > 学院 > 开发设计 > 正文

BLOCK总结

2019-11-09 18:40:11
字体:
来源:转载
供稿:网友

1、什么是block

block是带有局部变量的匿名函数


2、截获自动变量

block会截获自动变量的瞬间值

__block修饰符 如果被截获的变量想要在block执行时被赋值,必须使用__block修饰


3、block的实现

block的语法看上去很特别,但实际上block是作为极普通的c语言源代码来处理的。 block即为oc对象

block截获自动变量时在block结构体中保存一份自动变量的【值】 __block修饰的变量也以结构体形式存在

block结构体 和 __block变量 结构体都是在栈上创建的,当栈被销毁是,相应的结构体被拷贝到堆上。


4、block的循环引用

对象持有block,block反过来又持有对象时,就造成了循环引用。 解决方案:block持有对象的弱引用


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表