我了解到,在Objective-C中,垃圾回收是使用AUTOZONE(LIBAUTO)完成的。
同时,垃圾回收器在OS X 10.8之前可用。在学习时,我想知道如果垃圾回收器可用,ARC的必要性是什么。然后从stackoverflow.com的资源中,我了解到了ARC和垃圾回收器之间的区别以及它们相互之间的优势。
现在我知道ARC在编译时工作,而垃圾回收器在运行时工作。此外,ARC无法释放CFTypes的内存,它只适用于Objective-C类型。而垃圾回收器可以释放由ARC无法释放的保留循环。
现在我想知道是否可以同时使用ARC和垃圾回收器,因为两者在OS X 10.7中都可用。另外,为什么在10.8之后垃圾回收器被弃用了。ARC是否是垃圾回收器的替代品,它能够释放垃圾回收器所能释放的每种对象。
此外,由于iOS中没有垃圾回收器,那么在ARC出现之前,iOS使用了什么进行垃圾回收。如果手动内存管理得当,是否能够管理所有内容,而不需要垃圾回收。
std::shared_ptr
这样的东西是某些事情出了问题的明确迹象:你真的认为你一个人可以比一群有多年经验的其他专家做得更好吗? - DarkDust