0

我有一个非 ARC 项目,我添加了一个新文件并为其设置了一个 ARC 编译器标志 (-fobjc-arc)。当我调用 [object release] 时;在文件中,没有抛出编译器错误。我需要确定这个文件确实启用了 ARC,我该如何证明呢?谢谢。

4

3 回答 3

6

运行时不检查 ARC。但是,您可以在编译时检查它:

#if !__has_feature(objc_arc)
    //Do the old stuff
#endif

希望有帮助。

于 2013-01-17T15:11:23.487 回答
1

此外,如果您可以调用-release,则 ARC 已关闭。一旦打开,编译器将抱怨任何手动内存管理的尝试,如-retain调用-release[super dealloc].

于 2013-01-17T15:14:00.427 回答
0

尝试这个

#if __has_feature(objc_arc)
    // ARC is On
    NSLog(@"ARC on");

#else
    // ARC is Off
    NSLog(@"ARC off");

#endif

希望对你有帮助。。

于 2013-01-17T15:12:09.053 回答