block实际上是:指向结构体的指针 。默认情况下, block的内存是在栈中, 它不会对所引用的对象进行任何操作;如果对block做一次copy操作(Block_copy(block);), block的内存就会在堆中,它会对所引用的对象做一次retain操作,非ARC : 如果所引用的对象用了__block修饰, 就不会做retain操作;ARC : 如果所引用的对象用了__unsafe_unretained \ __weak修饰, 就不会做retain操作.
Objective-C的block内存管理
最新推荐文章于 2025-06-01 20:22:08 发布
本文深入解析了Block在不同内存管理方式下的行为差异:栈中Block默认不改变引用对象状态,而堆中Block会进行retain操作。文章还探讨了在非ARC及ARC环境下,通过特定修饰符避免retain操作的方法。
1845

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



