在ARC已经如此成熟的今天,一些开发者就淡化了iOS的内存管理。但是需要知道的是ARC不是万能的,在处理引用循环时就无能为力了。就像文章中所描述的那样:ARC背后的原理是依赖编译器的静态分析能力,通过在编译时找出合理的位置插入引用计数管理代码,从而解放程序员。也就是说在MRC时代需要程序员自己写的内存管理代码诸如[XX retain]、[XX release]之类的由编译器的ARC自动插入,而并不是不再需要内存管理。那么如果编译器找不到在哪里插入的时候,我们就需要回到远古时代来MRC了!
还是唐巧的一篇文章,顺道解释一下笔者只给出链接的原因——防止利益纠纷。既然没有显示的贴上文章的内容,也就不需要转载的权限了,外人的访问都是在文章的源头处。嗯!这里只是一个“中介” :)
唐巧的技术博客:理解iOS的内存管理