为了账号安全,请及时绑定邮箱和手机立即绑定

既然设置了ARC,为什么还要使用@autoreleasepool

既然设置了ARC,为什么还要使用@autoreleasepool

小怪兽爱吃肉 2019-04-16 20:25:54
1、既然设置了ARC,为什么还需要@autoreleasepool,有什么好处?池子做的是运行时延迟释放,ARC已经在编译时解决了手动管理的问题,那么就没必要使用@autoreleasepool,还占内存。2、ARC频繁释放内存和@autoreleasepool一起释放感觉还是前者要好些,这不是像数据连接池一样可以共享资源。只是延迟释放内存(又不能共享内存)。按着这个推论在ARC条件下,没必要使用@autoreleasepool。我知道这种想法有问题,但是不知道是哪里,新手问题多,莫喷
查看完整描述

2 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

用@autoreleasepool是有用的。正常情况下,你创建的变量会在超出其作用域的时候被释放掉。而如果你的函数写的很长,在你函数运行过程中出现很多中间变量,占据了大量的内存,怎么办?用@autoreleasepool。在@autoreleasepool中创建的变量,会在@autoreleasepool结束的时候执行一次release,进行释放。其实@autoreleasepool就相当于一层作用域。
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 301 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信