这都是Objective-C中的垃圾收集吗?

时间:2009-03-15 22:34:03

标签: iphone objective-c memory garbage-collection

您好我刚拿起Obj-C并且非常不喜欢它的手动内存管理。

我决定使用垃圾收集,添加

objc_startCollectorThread();//garbage collection
在我的Main()中

并将垃圾收集值更改为[-fobjc-gc]

所有我需要的是吗?所以我可以像Java / Python那样“自由地”编程。等等?

4 个答案:

答案 0 :(得分:4)

是的,你是对的,但是如果任何iPhone程序员过来并认为“哦,甜蜜!”,请注意iPhone还不支持垃圾收集(永远?)。所以这是MacOS唯一的解决方案。

答案 1 :(得分:2)

请注意-fobjc-gc表示您仍然使用retain / release(编写Framework /库时);如果你想彻底摆脱引用计数代码,你可能想要-fobjc-gc-only

答案 2 :(得分:2)

正如其他人所说,iPhone中没有垃圾收集。

如果您正在编写Desktop Cocoa应用程序,您只需要-fobjc-gc-only标志,而不需要明确的objc_startCollectorThread()启动功能。

答案 3 :(得分:0)

基本上,是的。 Apple's documentation中介绍了这一点。您可能还需要偶尔拨打

objc_clear_stack

但这是可选的,以确保堆栈保留对象的生命周期尽可能短。