block的基本理解

 我来答
青柠姑娘17
2022-07-03 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6716
采纳率:100%
帮助的人:38.7万
展开全部

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 广告
ZigBee作为一项新型的无线通信技术,其具有传统网络通信技术所不可比拟的优势,既能够实现近距离操作,又可降低能源的消耗。又如,相较于蓝牙等无线通信技术,ZigBee无线通信技术可有效降低使用成本, 即便数据处理的速率并不高,然而,值得肯定... 点击进入详情页
本回答由晓网科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式