启用ARC但我仍然可以在AppDelegate中使用release和autorelease?

时间:2013-03-21 14:20:02

标签: ios objective-c memory-management automatic-ref-counting appdelegate

我在iOS应用程序中启用了ARC,我认为这意味着您无法在不设置retain标志的情况下明确调用releaseautorelease-fno-objc-arc 。显然,对于应用程序委托来说,情况并非如此。我在我的项目的“Build Phases”的“Compile Sources”部分下检查了我的AppDelegate文件,它没有列出为我AppDelegate文件设置的任何编译器标志。但是,我可以明确地呼叫releaseautorelease,但不能retain。这是巫术的证据,还是苹果工程师采用黑客手段让ARC工作?

1 个答案:

答案 0 :(得分:2)

如果您可以发送这些消息,则ARC已关闭。

您可以使用

进行检查
#if ! __has_feature(objc_arc)
#error "ARC is off"
#endif