在xcode 4.2中,我发现它非常令人沮丧,因为你无法使用:
-(void)dealloc {
[label release]; //'release' is unavailable
[super dealloc]; //'dealloc' is forbidden in automatic reference counting
}
还有另一种方法,因为autorelease和其他deallocs也不起作用。
答案 0 :(得分:9)
Xcode 4.2引入了“自动引用计数”(又称ARC)。这是一个编译器功能,基本上为您插入保留和释放调用。在ARC下,如果你有一个指向对象的指针,你就会保留它。当指针超出范围或重新指定指向另一个对象时,将释放原始对象。这真的很好。
简而言之,您只需删除对retain
,release
和autorelease
的所有调用,编译器就会为执行正确的操作你。
答案 1 :(得分:1)
阅读自动参考计数。如果您正确编写代码,则不再需要执行任何操作。
如果要在不转换的情况下使用旧代码,请禁用ARC。将-fno-objc-arc
放入您不想使用ARC的任何源模块的编译器标志中。
乔