A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

学习了block,总感觉它有很大的可塑造性。讨论讨论它的应用场景和优点

2 个回复

倒序浏览
1.block默认都是分配在stack,当copy后,它移到heap里;
2.block中的变量默认是不能修改的,只有添加__Block修饰符后才能修改;
3.block中有oc对象时,会_Block_retain_object(object),直到block销毁后才会_Block_release_object(object);
4.对block进行copy时
If you access an instance variable by reference, a strong reference is made to self;
If you access an instance variable by value, a strong reference is made to the variable.
它会将self进行copy,此时改对象的dealloc方法不会执行(因为它的引用计数归0),解决此问题有2种方法:在block执行完成后面立即Block_Release(),或者将改变量声明为__Block类型(Why?)

回复 使用道具 举报
理解有点困难,能不能配合一些简单的例子讲解一下呢!谢谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马