iOS block的基础语法

 我来答
大沈他次苹0B
2022-07-15 · TA获得超过7325个赞
知道大有可为答主
回答量:3059
采纳率:100%
帮助的人:178万
展开全部

block是一个数据类型:int double float char ...
既然是一个数据类型,那么就可以声明这样的数据类型的变量,所以我们完全可以声明一个block类型的变量,
不同数据变量中可以存储不同的数据类型,那么block类型的变量中可以存储声明样的数据呢?

Block的RetainCycle

当我们定义局部block时,它在内存中“栈”,它不会保留任何对象,因为它的生命周期出了方法就死亡了如果在块语句中,调用了一个局部变量,那么这个变量它会被认为是一个常量,是不可以被修改的,如果想修改,修饰符__block;全局、外部、静态变量.

一旦我们将block进行copy,意味着将这个block变量从栈拷贝到了堆中

a .如果在块中是一个局部的对象,那么这个block变量会将这个对象进行保留,防止这个对象提前释放。如若不想保留,添加__block修饰符

b .如果在块中是一个全局对象,那么这个block变量不会对这个对象进行保留,但会保留这个对象的拥有者,比如self

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式