Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:垃圾收集_Ios_Objective C_Automatic Ref Counting - Fatal编程技术网

iOS:垃圾收集

iOS:垃圾收集,ios,objective-c,automatic-ref-counting,Ios,Objective C,Automatic Ref Counting,我知道iOS自动引用计数,这是基于编译器的特性。但是,我浏览了很多网站,对iOS程序开发中是否也存在垃圾收集感到困惑?我知道,ARC和GC是不同的。有些链接说,GC可用于iOS,有些链接说GC仅可用于MacOSX开发。但是,我不能断定在iOS开发中是否存在GC?请告诉我正确的路径或链接,以便我能够了解它并尝试编程 谢谢 iOS没有垃圾收集iOS没有垃圾收集方法。即使如此,在使用ARC时,垃圾收集也是完全不必要的(出于所有实际目的)。ARC在编译时发挥了神奇的作用,为您进行引用计数,因此不需要(实

我知道iOS自动引用计数,这是基于编译器的特性。但是,我浏览了很多网站,对iOS程序开发中是否也存在垃圾收集感到困惑?我知道,ARC和GC是不同的。有些链接说,GC可用于iOS,有些链接说GC仅可用于MacOSX开发。但是,我不能断定在iOS开发中是否存在GC?请告诉我正确的路径或链接,以便我能够了解它并尝试编程


谢谢

iOS没有垃圾收集

iOS没有垃圾收集方法。即使如此,在使用ARC时,垃圾收集也是完全不必要的(出于所有实际目的)。ARC在编译时发挥了神奇的作用,为您进行引用计数,因此不需要(实际上是不允许)使用任何其他类型的内存管理

编辑:


为了澄清这一点,OSX目前确实支持垃圾收集,但在OSX Mountain Lion之前,它已被弃用(直到几分钟前我才知道)。iOS从来没有也永远不会支持垃圾收集。与ARC相比,垃圾收集的任何优势都是毫无意义的,苹果已经(有力地)推动我们朝着正确的方向前进。

。。。从来没有,也永远不会。垃圾收集已弃用-@Tommy-您的意思是垃圾收集的Mac/OS X实现已弃用。垃圾收集,作为一个概念,仍然非常活跃;我明确的意思是“苹果明确地喜欢ARC而不是垃圾收集,所以不会在iOS上实现后者,甚至不希望你使用他们在Mac上实现的东西”。苹果文档仍然说[NSObject finalize]方法在iOS2和更高版本中可用=)从技术上讲,垃圾收集有一些自动引用计数所没有的优点-最明显的是,保留周期不是一个问题(因此,无需手动担心弱引用和强引用)。但是,是的,它是完全没有必要的,它永远不会被实现,ARC基本上做同样的工作。根据我的经验,垃圾收集从来都不是完美的,依靠它已经证明了。。。有问题。@JustSid公平点,但苹果的垃圾回收器明确没有保留周期的问题,微软CLR的团队希望使用自动保留计数,但随后明确选择垃圾回收,部分原因是他们可以解决保留周期的问题(尽管出于性能原因可能更多;无论如何,您都需要一个跟踪元素来消除周期,这样您就可以通过极大地简化任务而获胜-请参阅,以获得对许多问题的深入评估).就我个人而言,我强烈建议您使用ARC。好处远远大于坏处。从长远来看,ARC将使您的生活更加轻松。“使用ARC时,完全不需要(出于所有实际目的)垃圾收集。”从抽象性/便利性的角度来说,ARC介于手动内存管理和完全GC之间(可能更接近GC)。当大量使用闭包时,显式强/可空弱语义的烦恼变得尤为明显,特别是在ObjC中,其中任何ivar引用都是隐式强
self
引用。我还没有看到任何可信的、全面的ARC和精心设计的GC的比较。苹果的意见是不够的。GC是可用的OSX的标签有效期至2015年5月1日。现在,它在任何地方都不可用。