__OBJC__等效于Objective-C ++

时间:2009-07-17 18:39:11

标签: c++ iphone objective-c

我正在为iPhone应用程序编译.mm文件(Objective-C ++),并且预编译的头文件无法包含基类。

我将其追踪到以下内容:

#ifdef __OBJC__
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
#endif

事实证明,__OBJC__未定义mm文件,而是为标准m文件定义。

我可以使用其他任何标志吗?

1 个答案:

答案 0 :(得分:2)

如果您使用-dM -E调用gcc,它将在预处理后停止,并列出所有#defines。这通常是我如何检查内置定义的设置;但是我只是尝试了一个测试.mm文件并为我定义了__OBJC__,所以我不确定为什么没有为你定义。

$ echo "int foo() {};" > tmp.mm
$ gcc -dM -E tmp.mm|grep OBJ
#define __OBJC__ 1
#define OBJC_NEW_PROPERTIES 1