iOS block的基础语法
1个回答
展开全部
block是一个数据类型:int double float char ...
既然是一个数据类型,那么就可以声明这样的数据类型的变量,所以我们完全可以声明一个block类型的变量,
不同数据变量中可以存储不同的数据类型,那么block类型的变量中可以存储声明样的数据呢?
Block的RetainCycle
当我们定义局部block时,它在内存中“栈”,它不会保留任何对象,因为它的生命周期出了方法就死亡了如果在块语句中,调用了一个局部变量,那么这个变量它会被认为是一个常量,是不可以被修改的,如果想修改,修饰符__block;全局、外部、静态变量.
一旦我们将block进行copy,意味着将这个block变量从栈拷贝到了堆中
a .如果在块中是一个局部的对象,那么这个block变量会将这个对象进行保留,防止这个对象提前释放。如若不想保留,添加__block修饰符
b .如果在块中是一个全局对象,那么这个block变量不会对这个对象进行保留,但会保留这个对象的拥有者,比如self
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询