请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

于海 2019-01-12 10:19:01

要回答这个问题需要知道RunLoop和AutoReleasePool的关系。

Runloop每次循环都是被一个AutoReleasePool包围着的,具体说每次Runloop循环将要结束的时候会释放当前runloop的内存占用。再创建好一个AutoReleasePool给下一次Runloop循环使用。这一点可以通过课程提供的Runloop源码得到印证。

ViewDidLoad是在主线程执行,在该方法中创建的array会加入到当次RunLoop的AutoReleasePool中,array会在当前RunLoop将要结束的时候得到内存释放。

一般错误的回答都是viewDidLoad方法结束就释放了

希望可以帮助到你

1 回复 有任何疑惑可以回复我~
  • 请问下如果局部变量都是通过放入自动释放池被释放的,那么ARC的自动添加变量的release代码体现在哪里?
    回复 有任何疑惑可以回复我~ 2019-09-27 07:43:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信