为Xcode 5的QuickH⁣elp创建枚举的文档字符串

时间:2014-01-02 23:03:41

标签: objective-c xcode enums documentation docstring

我想在Xcode 5中记录一个枚举,以便在自动完成弹出窗口中看到我的文档字符串为“快速帮助”。例如,如果我这样做:

//! Better than a normal int!
typedef int superint;

然后我可以输入superi,弹出窗口显示superint,弹出窗口底部显示“优于普通的int!”。

但是,我似乎无法找到任何方法让这个用于枚举。我的枚举看起来像这样:

typedef enum: unsigned int {
    a = 1,
    b = 2,
    c = 3,
} abc_t;

在这种情况下,预先//!(或////**)行不起作用。我输入“abc_”并在弹出窗口中显示完成,但底部没有文档字符串。

我有一个想法是Apple可能更好地支持使用他们的NS_ENUM()宏,但//!之前的行上的typedef NS_ENUM(...) { ... }也不起作用。

我通过Foundation标题查看了这个有用的示例,但我认为他们必须做一些特别的事情。例如,NSXMLParserError是一个枚举,在自动完成弹出窗口中显示文档字符串(如果您键入“NSXMLParserE”),但在NSXmlParser.h中,它在前面的行上有一个普通的//注释。在我自己的代码中遵循此样式不会在弹出窗口中显示文档字符串。

2 个答案:

答案 0 :(得分:1)

我找到了一种让它起作用的方法,但它有点难看:

typedef enum: unsigned int {
    //! First letter
    ABC_A = 1,
    //! Second letter
    ABC_B = 2,
    //! Third letter
    ABC_C = 3,
}
//! Now I know my ABC's.
abc_t;

我希望有一个解决方案,让我将文档字符串保持在上面,就像在其他所有上下文中一样。

答案 1 :(得分:0)

NS_ENUM可以记录在案。 使用您喜欢的任何多线样式,至少在检查器的Xcode 6中,它尊重@abstract的整体描述,如果您使用@field

,则跟随每个成员
/*!
@abstract NSUInteger typedef to simplify stuff.
@field EnvironmentNumberMIN one.
*/
typedef NS_ENUM(NSUInteger, EnvironmentNumber) {
/// Lower floor. Use for validation.
EnvironmentNumberMIN    = 0,
....

对于旧式枚举,它可以工作,但不会像使用NS_ENUM一样将成员放在离散的新行上