来源:iOS_小松哥

www.jianshu.com/p/fd4d8d6b6177

如有好文章投稿,请点击 → 这里了解详情

由于最近琐事比较多,所以好久没有写文章了。今天我们聊一聊Objective-C自动生成文档。

做项目的人多了,就需要文档了。手工写文档是一件苦差事,但是我们也有从源码中抽取注释生成文档的专用工具。

经过查找,比较大众的有三个:

doxygen:适于生成html文档与pdf文档。 支持的语言多,可以配置的地方也比较多。默认生成的风格与苹果的风格不一致。

headdoc :是 Xcode 自带的文档生成工具。在安装完 Xcode 后,就可以用命令行来生成对应的文档。不过它只生成以/*! */的格式的注释。不兼容 /** */格式的注释

appledoc: Github地址 https://github.com/tomaz/appledoc,适于生成html文档和xcode帮助文档(docset)。可以兼容 /** */格式,也可以兼容 /*! */格式的注释。

我感觉appledoc是最好的,所以在这里,我只介绍一下appledoc的使用,有兴趣的童鞋也可以研究下其他两种。

appledoc的安装

第一种:打开终端,输入以下命令:

git clone git://github.com/tomaz/appledoc.git

cd appledoc

sudo sh install-appledoc.sh

第二种:如果你装了homebrew,打开终端,输入以下命令:

brew install appledoc

appledoc的使用

为了演示appledoc的使用,我在桌面新建了一个工程Test,然后在ViewController类里面加了一些注释:

ViewController.h

ViewController.m

然后演示appledoc的使用:

1.在终端中使用

使用 appledoc 时,打开终端,进入项目所在目录,使用如下命令即可:

appledoc --output 输出路径 --project-name 工程名 --project-company 公司名 --company-id 公司ID .

例如我在这里使用的命令是:

appledoc --output ./doc --project-name Test --project-company lisong --company-id lisong .

具体过程如下:

生成Docset

appledoc 会扫描当前路径下的所有文件,然后生成好文档放到 doc 目录下。

doc目录

编译出的Docset

默认会放在~/Library/Developer/Shared/Documentation/DocSets路径下,里面包含html的文档。首先显示生成的Docset的包内容,然后在Contents/Resources/Documents路径下,双击打开里面的index.html可以在浏览器中查看文档了。

并且生成的Docset已经安装到Xcode中。重启Xcode后,在Help—Documentation and API Reference菜单下也可以看到生成的文档:

在Xcode中查看

如果不想生成Docset,而是想生成html,就需要加一个--no-create-docset,这里我使用命令:

appledoc --no-create-docset --output ./doc --project-name Test --project-company lisong --company-id lisong .

则会在doc目录下生成一个html文件夹,也是双击里面的index.html就可以在浏览器中查看文档了。

html文档

你也可以在终端用appledoc --help查看所有可用的参数。详细的信息可以查看官方的文档:http://gentlebytes.com/appledoc/

2.在Xcode里使用

1.首先创建一个Aggregate类型的Target,取名Document

创建Target

2.选择Build Phases,点击左边的小加号,选择New Run Script Phase,建好了以后打开刚刚建立的Run Script,在框里输入命令,命令与终端一样,这里我们输入:

appledoc --no-create-docset --output ./doc --project-name Test --project-company lisong --company-id lisong .

添加script

3..然后点左上角选择Document,编译一下,成功后文档就生成在doc目录下了。

编译生成文档

注释样式

因为appledoc是通过注释生成文档的,下面说说注释的样式,几种常见的有:

/// Single line comment.

/// Single line comment spreading

/// over multiple lines.

/** Single line comment. */

/*! Single line comment */

/**

* Single line comment spreading

* over multiple lines.

*/

/**

Single line comment spreading

over multiple lines. No star

*/

在Xcode里面,我们可以用command + option + /方便快捷地生成注释,很方便。大家可以多尝试尝试各种注释。

更多的注释格式可以看这里:https://github.com/tomaz/appledoc/blob/master/CommentsFormattingStyle.markdown

Objective-C 自动生成文档工具:appledoc相关推荐

  1. Objective-C自动生成文档工具:appledoc

    作者 iOS_小松哥 关注 2016.12.13 15:47* 字数 919 阅读 727评论 10喜欢 35 由于最近琐事比较多,所以好久没有写文章了.今天我们聊一聊Objective-C自动生成文 ...

  2. 项目实战-自动生成文档工具

    1.pom 文件 <dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-c ...

  3. docwizard c++程序文档自动生成工具_如何开发一个基于 TypeScript 的工具库并自动生成文档

    为什么用 TypeScript? TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any ...

  4. django集成Sphinx,为项目自动生成文档

    Sphinx是一个工具,可以轻松创建智能和漂亮的文档,他与Python自带的pydoc是同一类产品,但比pydoc更加优秀,还有很多主题可以选择,平时在开发过程中,我们看到的第三方包的文档,基本上都是 ...

  5. java接口废弃注释_Spring Boot如何让Web API自动生成文档,并解决swagger-annotations的API注解description属性废弃的问题...

    前后端分离的系统架构中,前端开发人员需要查看后端WEB API的文档来进行开发.采用后端API文档自动生成的方式,可以大幅提高开发效率.swagger是一个被广泛使用的文档自动生成工具,可以与多种编程 ...

  6. Java使用smart-doc自动生成文档

    作为后端开发,写接口文档一直是一个很头痛的问题,今天推荐一个开源工具smart-doc,这个工具基于java原生的注释生成api文档,无需大量的注解配合使用. 官方地址:https://gitee.c ...

  7. 【飞书应用】自动生成文档

    飞书开放平台 飞书开放平台,里面有关于飞书提供的一些供开发者使用的api,可以用来开发飞书的自定义应用,本次使用里面文档相关的api来自动生成文档 创建飞书应用 可以根据飞书官方文档,创建飞书应用,本 ...

  8. spring boot rest接口自动生成文档(包含swagger)--gradle 下的配置

    之前写过一篇文章:spring boot rest接口自动生成文档(包含swagger),这个使用的是maven作为依赖管理工具,现在,让我们体验一下gradle在spring boot项目中如何配置 ...

  9. java前端目录_[Java教程]前端那点事儿——Tocify自动生成文档目录

    [Java教程]前端那点事儿--Tocify自动生成文档目录 0 2016-06-29 22:00:07 今天偶然间看到文档服务器有一个动态目录功能,点击目录能跳转到指定的位置:窗口滑动也能自动更新目 ...

最新文章

  1. 妨碍你成为CCIE的10个不良习惯
  2. 鲁迅先生就ERP实施问题答记者问
  3. 灯光工厂滤镜插件knoll light factory
  4. ps怎么清屏_PS:oracle恢复删除的数据
  5. 开源docker轻量级管理平台shipyard部署(中文版)
  6. (4) 百度2011研发工程师笔试卷
  7. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过
  8. 随记一个C的毫秒级群PING
  9. SQLl中的left join、right join、inner join详解
  10. LoadRunner测试下载功能点脚本(方法一)
  11. totolinkn200up怎么设置_totolinkN200R无线路由器如何设置啊,求高人指点
  12. echarts数据可视化_Golang 数据可视化利器 go-echarts 开源啦
  13. 打磨锤子计算机专业,工大金课 | 在北工大校园里,磨一把“工大锤”
  14. java事件 socket_java中有关socket通信的学习笔记
  15. Linux ldd时某个依赖库so not found的一种特殊情形
  16. 上涨趋势回踩均线选股器
  17. android linux 双系统实现(android+buster)同时运行
  18. 判断机型,支持最新设备(iPhone SE Gen2 和 iPad Pro 11 Gen2、iPad Pro 12.9 Gen4)
  19. Java菜鸟学习日记7
  20. Windows xp 磁盘加密

热门文章

  1. startActivityForResult和setResult详解
  2. 【MongoDB学习之一】初始MongoDB
  3. HotSpot模板解释器目标代码生成过程源码分析
  4. mac 下周期调度命令或脚本
  5. robot简单功能测试脚本设计(例子)
  6. 度量,跟踪和日志记录
  7. php使用curl可以get 模拟post
  8. 巧用CSS的 Mask 滤镜
  9. list控件响应鼠标键的单双击
  10. 一种不会导致资源泄露的“终止”线程的方法