为了账号安全,请及时绑定邮箱和手机立即绑定

ios block是什么数据类型?

ios block是什么数据类型?

iOS
慕码人8056858 2019-02-13 15:07:05
ios block是什么数据类型
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

Block是一种比较特殊的数据类型。它可以保存一段代码,在合适的时候取出来调用。
Block的修饰
ARC情况下:
1、如果用copy修饰Block,该Block就会存储在堆空间。则会对Block的内部对象进行强引用,导致循环引用。内存无法释放。解决方法:新建一个指针(__weak typeof(Target) weakTarget = Target )指向Block代码块里的对象,然后用weakTarget进行操作。就可以解决循环引用问题。
2、如果用weak修饰Block,该Block就会存放在栈空间。不会出现循环引用问题。MRC情况下用copy修饰后,如果要在Block内部使用对象,则需要进行(__block typeof(Target) blockTarget = Target )处理。在Block里面用blockTarget进行操作。
返回值类型(^block变量名)(形参列表) = ^(形参列表) {};调用Block保存的代码block变量名(实参);默认情况下,,Block内部不能修改外面的局部变量Block内部可以修改使用__block修饰的局部变量。
Block的模式
1、无参数无返回值的Block
2、有参数无返回值的Block
3、有参数有返回值的Block



查看完整回答
反对 回复 2019-03-19
  • 3 回答
  • 0 关注
  • 834 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信