iOS:垃圾收集

Dai*_*isy 16 objective-c ios automatic-ref-counting

我知道iOS自动引用计数,它是基于编译器的功能.但是,我一直在浏览许多网站,并对iOS程序开发中是否存在垃圾收集感到困惑?我知道,ARC和GC彼此不同.一些链接说,GC可用于iOS,有些链接表示GC仅适用于Mac OS X开发.但是,我无法断定在iOS开发中是否存在GC?请指导我正确的路径或链接,以便我能理解它并尝试编程.

谢谢!

ger*_*iam 10

iOS没有垃圾收集

  • @Tommy - 你的意思是不推荐使用*Mac/OS X*垃圾收集实现.作为一个概念,垃圾收集仍然非常活跃. (3认同)
  • ......从来没有,也永远不会.不推荐使用垃圾收集 - http://developer.apple.com/library/mac/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011226-CH1-SW17 (2认同)

zac*_*hjs 10

iOS没有垃圾收集方法.即便如此,当使用ARC时,垃圾收集完全没有必要(出于所有实际目的).ARC在编译时发挥作用,为您进行引用计数,从而使得不必(并且实际上不允许)使用任何其他类型的内存管理.

编辑:

为了澄清,OS X目前支持垃圾收集,但从OS X Mountain Lion开始,它已被弃用(直到几分钟之前我都不知道).iOS从来没有,也永远不会支持垃圾收集.与ARC相比,垃圾收集的任何优点都没有实际意义,而苹果公司已经采取行动(强行)推动我们朝着正确的方向发展.

  • 技术上垃圾收集有一些优点,自动引用计数不会 - 最显着的保留周期不是问题(所以,不需要手动担心弱引用与强引用).但是,是的,它是不必要的,它永远不会实现,ARC基本上做同样的工作. (2认同)
  • @JustSid公平点,但Apple的垃圾收集器显然没有保留周期问题,微软CLR背后的团队预计会使用自动保留计数,但之后明确选择垃圾收集,部分原因是它们可以解决保留周期问题(尽管可能更多的是性能)原因;你需要一个跟踪元素来消除周期,这样你就可以通过大大简化任务获得胜利 - 请参阅http://blogs.msdn.com/b/brada/archive/2005/02/11/371015.aspx适当深入评估马口的许多问题). (2认同)