当前位置: 首页 > 工具软件 > OSChina Block > 使用案例 >

Block之内存管理

靳涵亮
2023-12-01

对block调用复制,有以下几种情况:

1.对全局区的block调用copy,会返回原指针,并且这期间不处理任何东西(至少目前的内部实现是这样);

2.对栈上的block调用copy,每次会返回新复制到堆上的block的指针,同时,所有__block变量都会被复制至堆一份(多次拷贝,只会生成一份)。

3.对已经位于heap上的block,再次调用copy,只会增加block的引用计数。

为什么我们不讨论retian的行为?原因是并没有Block_retain()这样的函数,而且objc里面的retain消息发送给block对象后,其内部实现是什么都不做。

参考文章:

http://mobile.51cto.com/hot-403914.htm

http://my.oschina.net/panyong/blog/304134

http://www.tanhao.me/pieces/310.html/

转载于:https://www.cnblogs.com/xing-li/p/4511732.html

 类似资料: