如何确定编译器当前处于 ARC 模式?

Posted

技术标签:

【中文标题】如何确定编译器当前处于 ARC 模式?【英文标题】:How to determine compiler is currently in ARC mode? 【发布时间】:2012-01-15 19:42:48 【问题描述】:

我有几个inline static C 函数。我调用 Objective-C 代码,包括[-release]

问题是我必须编译 ARC 或非 ARC 目标的代码。所以我认为我需要通过预定义的编译器标志进行条件编译。我应该为此使用什么标志?

【问题讨论】:

【参考方案1】:

来自http://lists.apple.com/archives/xcode-users/2011/Aug/msg00252.html

LLVM 编译器的检查称为__has_feature。 ARC是其中之一 您可以检查的功能。

#ifndef __has_feature
// not LLVM Compiler
#define __has_feature(x) 0
#endif

#if __has_feature(objc_arc)
// compiling with ARC
#else
// compiling without ARC
#endif

【讨论】:

以上是关于如何确定编译器当前处于 ARC 模式?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ARC的OCMock中模拟**参数

如何确定 Skype 通话当前是不是在 Android 上处于活动状态

@synthesize of 'weak' property 仅允许在 ARC 或 GC 模式下使用 urbanship 首次编译

如何确定 WPF DataGrid 是不是处于编辑模式? [复制]

编译时出现ARC错误

如何将 [[ivar retain] autorelease] 转换为 ARC?