我使用 Doxygen 为我的目标 c 代码生成文档。到目前为止,我还没有找到任何关于如何正确记录属性的指南。我看过的例子是尽一切可能做到的。有些人自己记录变量,有些人记录@property 声明。一些使用 //,而另一些使用完整的 /** */ 块。
谁能指出我的最佳实践参考?或者也许是一些关于未来与 Doxygen 兼容性的信息?我想坚持一个模式,至少,一旦他们开发出官方模式,就很容易适应 Doxygen。
我使用 Doxygen 为我的目标 c 代码生成文档。到目前为止,我还没有找到任何关于如何正确记录属性的指南。我看过的例子是尽一切可能做到的。有些人自己记录变量,有些人记录@property 声明。一些使用 //,而另一些使用完整的 /** */ 块。
谁能指出我的最佳实践参考?或者也许是一些关于未来与 Doxygen 兼容性的信息?我想坚持一个模式,至少,一旦他们开发出官方模式,就很容易适应 Doxygen。
我只能说,Core Plot 框架使用如下格式注释实现中的属性声明
/** @property myProperty
* @brief Property is very useful
* Useful and there is a lot more to tell about this property **/
它似乎使用 Doxygen 生成了干净的文档。从核心情节文档政策:
@property 是必需的,否则 doxygen 无法找到属性名称。
像 readonly、copy/retain/assign 和 nonatomic 这样的访问器属性会自动添加,不应出现在文档的手动部分中。
在这里您可以找到有关 Objective-C 编码约定的一些信息:Google Objective-C 样式指南
但是,如果您愿意,还有一个名为 HeaderDoc 的好软件可以在 XCode 下生成文档。你可以在这里查看它的编码风格:HeaderDoc Tags
我的经验是:
当我在评论中使用@property 标记时,属性的 doxygen 输出会损坏,例如:[ClassName]:[read, write, assign]。
如果我省略 @property标记,而是依靠 doxygen 在源代码中找到“@property”声明,就在注释块的正下方,一切正常。
相比之下,@interface 适用于接口,@protocol 适用于协议。
此外,在过去,我在某些协议声明中使用了 doxygen 'slip'。Obj-C 仍然是二等的 doxygen 公民吗?
注意:我在 Mac 上使用 GUI/Wizard,注释块使用 '/ * * !' 而不是'/ * *'。