iOS @autoreleasepool {}在ARC下的使用场景-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

iOS @autoreleasepool {}在ARC下的使用场景

2016-07-27 11:27:04 1591 2

如题,ARC下已经不能使用NSAutoreleasePool对象,release/retain等方法,但是查了SDWebImage源码,看到 @autoreleasepool {}在ARC下还能用,请问,在ARC下 @autoreleasepool {}的作用是什么,如果跟NSAutoreleasePool是一样的,那么ARC不是会在代码执行完毕的时候自动回收的么,为什么还要多此一举呢?

取消 提交回答
全部回答(2)
  • 靠谱的小号
    2019-07-17 20:00:27

    在ARC下使用autoreleasepool,可以达到优化代码执行效率的问题。
    比如在一个for循环中,如果每次循环时都创建了大量的临时对象,那么通常会在整个代码块执行结束后,才会一次性释放所有的临时变量。
    如果在for循环中使用了autoreleasepool,那么每次循环结束后就会自动进行临时对象的释放,节约系统资源。

    0 0
  • a123456678
    2019-07-17 20:00:27

    你写到了release/retain等方法, ARC 下你不能写这些方法,但ARC 会帮你在合适的地方插入这些方法。这将导致内存的延迟释放。autoreleasepool是为了 autorelease 这个方法,在对象的创建者没法销毁对象的时候,可以使用autorelease让autoreleasepool每隔一段时间检查该对象的引用计数,如果为0则释放对象。那么多个autoreleasepool的作用就是增加这种间隔,比原本autorelease释放的时间更早释放。

    0 0
添加回答
相关问答

8

回答

短视频SDK如何做到视频原始比例裁剪?

樰篱 2017-09-13 17:35:01 39452浏览量 回答数 8

11

回答

iphone设置阿里云邮箱的步骤

minioba 2013-04-24 22:04:37 102258浏览量 回答数 11

38

回答

【hi聊】2019年终回顾:程序员这些年经历最大的变化

问问小秘 2019-12-16 16:46:59 47650浏览量 回答数 38

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 93744浏览量 回答数 28

1

回答

2020年阿里、字节:一套高效的iOS面试题(二)

montos 2020-04-13 15:08:17 36326浏览量 回答数 1

87

回答

ECS云服务器用户操作帮助指南(官方)

qilu 2014-10-22 12:25:15 43091浏览量 回答数 87

11

回答

如何直接上传文件至OSS,不用服务器中转

cevin 2014-01-06 23:05:39 38610浏览量 回答数 11

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35475浏览量 回答数 3

58

回答

技术入门问答集锦,涉及多种技术方向,解决新人学习困惑

管理贝贝 2016-08-03 10:13:27 52746浏览量 回答数 58

46

回答

H5技术百问——不懂H5你就OUT啦

yq传送门 2017-09-09 11:03:04 47410浏览量 回答数 46
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载