block的基本理解
展开全部
1、 Block是将 函数 及其执行 上下文封装 起来的 对象 。
2、 截获变量
3、 一般情况下 ,对被截获变量进行 赋值 操作需要添加 __block修饰符 。
赋值 != 使用
4、对变量进行赋值时
需要__block修饰符: 局部变量(基本数据类型、对象类型)。
不需要__block修饰符: 静态局部变量、全局变量、静态全局变量。
__block修饰的变量变成了对象
5、Block的内存管理
impl.isa = &_NSConcreteStackBlock;
Block的copy操作
栈上的 __forwarding 指向堆的Block。
堆上的 __forwarding 指向堆自己的Block。
6、__forwarding总结
不论在任何内存位置, 都可以顺利的访问同一个__block变量。
7、循环引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
晓网科技
2024-10-17 广告
2024-10-17 广告
ZigBee作为一项新型的无线通信技术,其具有传统网络通信技术所不可比拟的优势,既能够实现近距离操作,又可降低能源的消耗。又如,相较于蓝牙等无线通信技术,ZigBee无线通信技术可有效降低使用成本, 即便数据处理的速率并不高,然而,值得肯定...
点击进入详情页
本回答由晓网科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询