为什么masonry的block里引用self不需要weak?
这个block只是个栈block,而且构不成循环引用的条件。栈block有个特性就是它执行完毕之后就出栈,出栈了就会被释放掉。看mas_makexxx的方法实现会发现这个block很快就被调用了,完事儿就出栈销毁,构不成循环引用,所以可以直接放心的使用self。
栈是由系统管理的
本文解释了在Masonry库中为什么可以在Block内直接使用self而不需要弱引用。通过分析Block的工作原理和Masonry的实现细节,揭示了栈Block执行完毕后即被释放的特性,避免了循环引用的问题。
这个block只是个栈block,而且构不成循环引用的条件。栈block有个特性就是它执行完毕之后就出栈,出栈了就会被释放掉。看mas_makexxx的方法实现会发现这个block很快就被调用了,完事儿就出栈销毁,构不成循环引用,所以可以直接放心的使用self。
栈是由系统管理的
3303

被折叠的 条评论
为什么被折叠?