我正在使用Doxygen记录用Objective-C编写的API。
Doyxygen无法理解NS_ENUM typedef。

我找到了此解决方案,但对我不起作用。

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = NS_ENUM(x,y)=y

Regards,
  Dimitri

这是我的输入文件:
/**
 *  Represent the possible states.
 */
typedef NS_ENUM(NSInteger, ABEnumType)
{
    /**
     *  State A.
     */
    StateA = 0,
    /**
     *  State B.
     */
    StateB
};

这是我得到的输出:
Preprocessing /src/ABEnumType.h...
error: /src/ABEnumType.h:17:17: error: C++ requires a type specifier for all declarations [clang]
error: /src/ABEnumType.h:17:28: error: unknown type name 'ABEnumType' [clang]
error: /src/ABEnumType.h:18:1: error: function definition is not allowed here [clang]
error: /src/ABEnumType.h:17:9: error: C++ requires a type specifier for all declarations [clang]
Parsing file /src/ABEnumType.h...

最佳答案

以下设置对我们有用:

 ENABLE_PREPROCESSING   = YES
 MACRO_EXPANSION        = YES
 EXPAND_ONLY_PREDEF     = YES
 PREDEFINED             = NS_ENUM(x,y)=enum y

这样,我们就能在doxygen生成的文档中看到所有NS_ENUM结构

关于objective-c - Doxygen无法在Objective-C中检测到NS_ENUM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23102059/

10-11 22:59