老师,block 在源码中是stackBlock 打印确是mallocBlock 这个怎么理解?

来源:7-4 Block内存管理相关面试问题

雪碧爹

2018-05-22

http://img.mukewang.com/szimg/5b06da4d0001c1ec10940648.jpg

//img.mukewang.com/szimg/5b0436b90001920807280114.jpg

//img.mukewang.com/szimg/5b0436b90001a2f512140470.jpg


写回答

2回答

clownfishcoder

2018-12-04

这个问题是由于你使用了ARC内存自动管理导致的,ARC会底层自动帮你做很多事情,导致理解上会出现偏差,你可以关闭ARC,使用MRC环境调试,结果就正常了,具体原因我也不太清楚,是从MJ老师的视频中了解的.

1
1
clownfishcoder
追加一下评论,我刚在博客中找到原因,是因为在底层block赋值操作时,会调用到_Block_copy,在这里会把stack类型的转换成Malloc类型的
2018-12-04
共1条回复

于海

2018-05-22

截图不全,看不到上下文,

0
1
雪碧爹
老师截图已更新,您看一下
2018-05-24
共1条回复

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程