你如何在xcode 4.2中释放内存?

时间:2011-10-12 02:08:08

标签: xcode

在xcode 4.2中,我发现它非常令人沮丧,因为你无法使用:

-(void)dealloc {
[label release]; //'release' is unavailable
[super dealloc]; //'dealloc' is forbidden in automatic reference counting
}

还有另一种方法,因为autorelease和其他deallocs也不起作用。

2 个答案:

答案 0 :(得分:9)

Xcode 4.2引入了“自动引用计数”(又称ARC)。这是一个编译器功能,基本上为您插入保留和释放调用。在ARC下,如果你有一个指向对象的指针,你就会保留它。当指针超出范围或重新指定指向另一个对象时,将释放原始对象。这真的很好。

简而言之,您只需删除对retainreleaseautorelease的所有调用,编译器就会为执行正确的操作你。

答案 1 :(得分:1)

阅读自动参考计数。如果您正确编写代码,则不再需要执行任何操作。

如果要在不转换的情况下使用旧代码,请禁用ARC。将-fno-objc-arc放入您不想使用ARC的任何源模块的编译器标志中。