你如何在Xcode中logging你的源代码?
我是一个非常强大的Java背景的Mac开发人员。 我用Javadoclogging了很多资料。
- 用Cocoa和Xcode怎么样?
- 是否有任何文档工具与苹果的开发工具一起提供?
- Doxygen是要走的路吗? 有什么select?
Doxygen与Objective-C(以及Cocoa代码)一起工作,Apple也提供了headerdoc文档生成器工具。 然后还有GNUstep的autogsdoc 。
Xcode 5已经升级了快速帮助:您现在可以像使用javadoc一样在您的注释中logging代码。 当您按下选项 click点击logging的对象/方法时,您将在一个漂亮的popup窗口中看到您的评论,例如来自Apple的文档:
它被列入这里的function列表。 原帖在这里 。
如果您使用的是Xcode≥3.0,那么您可能需要像其他人所build议的那样查看Doxygen,然后使用Doxygen在Apple的开发者网站上阅读本文,以便为您的项目创buildXcode文档集(可在Xcode的帮助系统中查看)。
我觉得没有一个是足够好的,他们生成的文档不符合苹果的标准。 所以我向Apple报告了一个错误,要求在Xcode中使用本地文档生成工具,如果您还想要这样一个工具,请投票给它 。
我使用Doxygen和Doxyclean生成清洁的,更类似苹果的文档,这是Doxygen本地生产的。
(应该说Doxyclean不会重新格式化所有的Doxygen输出 – 你肯定会得到你从Doxygen直接获得的文档的子集)。
我知道这是一个老问题,但我发现这个最近的Xcode插件非常有帮助:
https://github.com/onevcat/VVDocumenter-Xcode
只需在方法前键入///
,它就会自动生成文档,例如:
- (id)fooBar:(NSString *)woo;
在方法之前input///
之后,它将产生:
/** * <#Description#> * * @param woo <#woo description#> * * @return <#return value description#> */
我在Java中有类似的背景,并且在学习Objective-C和Cocoa时也遇到过同样的问题。 目前,还没有完全为Objective-C 量身打造的工具,但Doxygen目前是最好的select。 (我同意HeaderDoc过于复杂,尤其是对于小型项目,我发现的其他工具都已经死亡,包括AutoDoc和ObjcDoc。)Doxygen的开发人员在过去的几个版本中一直改进Obj-C支持,包括我提交的协议处理不正确的一些错误。
在Xcode中,我创build了一个具有单个运行脚本阶段的文档目标,该阶段使用保存在项目目录中的doxyfile调用Doxygen。 它有助于在/usr/local/bin
为Doxygen可执行文件创build一个符号链接,因此在共享的doxyfile中没有机器特定的path。
Doxygen 几乎支持您期望在Javadoc中看到的所有评论标签,另外还有更多。 我在开发的开放源代码框架上广泛使用了它 – 使用Subversion post-commit hook自动生成结果文档,并在线提供:
http://dysart.cs.byu.edu/CHDataStructures/
注意文档inheritance和协作的图表。 这些可以select使用GraphViz提供的点工具( v1.13或v2.20)生成 。 这些图是可点击的HTML图像映射,这有助于弥补Javadoc(如inheritance层次结构)或Apple的Cocoa文档(如采用的协议)期望的顶层信息的缺失。
另外,由于CHDataStructures是一个有很多公共API的框架,所以我写了大量的注释 – 大约70%的头文件。 由于文档在Doxygen生成的表单中更有用,我select从Release版本的头文件中删除大部分注释,这大大减less了头文件的磁盘大小。 我已经在BYU CocoaHeads wiki上发布了完整的解释和代码:
http://cocoaheads.byu.edu/wiki/stripping-comments-source-code
忘记headerdoc。 Headerdoc是一堆/ ** poo * /。 坚持与doxygen。 它工作得很好,并产生良好的文档。 它可以理解(或至less不会炸毁)更独特的Objc结构(协议,类别等)。 Doxygen风格的文档标记实际上是一个超集(正确的configuration)的headerdoc无论如何。
我build议使用HeaderDoc ,如WWDC 2103video401 – Xcode核心概念中的“集成文档”部分所述。 它在Xcode 5中完全支持
PS:关于如何在raywenderlich.com上使用HeaderDoc有很好的教程
Swift 2.0 + Xcode 7.0 beta 4
记号已经改变( :param:
不再工作了…)
/// Creates the string representation of the poo with requested size. /// /// - warning: Be carefull! Poos can hurt. /// - parameter size: requested size of the poo /// - returns: string representation of the poo func makePoo(size: String) -> String { return "Ouch. This is \(size) poo!" }
它看起来像这样:
您可以使用///
或/** */
关于Doxygen的另外一件事是,它在C ++方面做得非常好,所以如果你的Objective-C代码库包含一个通用的C ++引擎,那么它们都将在同一个文档库中。
这是一个关于xcode文档的完整和简单的指南:
用Xcode 5中的注释logging代码
它还提供了如何在文档代码中启用警告检测。
我不知道任何Xcode支持的文档工具,我不记得在任何苹果示例代码中看到任何文档标记。
我个人使用Doxygen,这适合我的需要就好了。