1、既然设置了ARC,为什么还需要@autoreleasepool,有什么好处?池子做的是运行时延迟释放,ARC已经在编译时解决了手动管理的问题,那么就没必要使用@autoreleasepool,还占内存。2、ARC频繁释放内存和@autoreleasepool一起释放感觉还是前者要好些,这不是像数据连接池一样可以共享资源。只是延迟释放内存(又不能共享内存)。按着这个推论在ARC条件下,没必要使用@autoreleasepool。我知道这种想法有问题,但是不知道是哪里,新手问题多,莫喷
2 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
用@autoreleasepool是有用的。正常情况下,你创建的变量会在超出其作用域的时候被释放掉。而如果你的函数写的很长,在你函数运行过程中出现很多中间变量,占据了大量的内存,怎么办?用@autoreleasepool。在@autoreleasepool中创建的变量,会在@autoreleasepool结束的时候执行一次release,进行释放。其实@autoreleasepool就相当于一层作用域。
添加回答
举报
0/150
提交
取消