当前位置: 首页 > 编程日记 > 正文

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

来源: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

相关文章:

linux命令--提升

查看系统进程:top 查看磁盘空间: df -h 查询系统负载: uptime , 以下显示输入uptime的信息: 04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20 1.当前时间 04:03:58 2.系统已运行的时间 10 days, 13:19 3.前在线用户…

git 从远程主服务器当中创建新分支

现有版本; h20, h28,h26,i8 h28,h26,i8是从H20下面创建的。 需求: 从H28下面创建新分支继续开发。 思路: 所有代码均是放置到H20上仓库当中,首先下载H20完整仓库,也就是.git文件夹当中内容,其本质是一个ZIP…

涉密计算机用户账号设置审批表,北京邮电大学涉密计算机配置审批表.PDF

北京邮电大学涉密计算机配置审批表北京邮电大学涉密计算机配置审批表使用部门 品牌型号涉密计算机类型 ?台式机 ?便携机 资产编号用途 ?科研 ?办公 ?其他 配置日期硬盘序列号中央处理器硬盘容量CPU基本配置 内 存显示器品牌型号MAC 地址操作系统版本 操作系统安装时间放置…

Oracle 正则表达式

ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE &#x…

制作 Swift 和 Objective-C Mixed 的 Pod

来源:南栀倾寒 www.jianshu.com/p/c7623c31d77b 如有好文章投稿,请点击 → 这里了解详情 知识背景 What is CocoaPods(https://guides.cocoapods.org/using/getting-started.html) What did CocoaPods do?&#x…

SearchRequestBuilder常用方法说明

SearchRequestBuilder常用方法说明 (1) setIndices(String... indices):上文中描述过,参数可为一个或多个字符串,表示要进行检索的index;(2) setTypes(String... types):参数可为一个或多个字符串,表示要进…

计算机知识课后反思,计算机硬件和软件知识课后反思

计算机硬件和软件知识课后反思《计算机系统组成》—计算机硬件和软件知识一课是七年级信息技术中《信息技术基础》里的知识。在学习这之前,学生虽然都使用过计算机,但对于计算机的系统组成、主机内的硬件知识基本知之甚少。但是对这些知识学生又充满了好…

iOS超全开源框架、项目和学习资料汇总:UI篇

2017-01-30 iOS巍 CocoaChina原文 上下拉刷新控件 1. MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。(推荐) 2. SVPullToRefresh --下拉刷新控件4500star,…

NYOJ 90 —— 求正整数n划分为若干个正整数的划分个数

整数划分 时间限制:3000 ms | 内存限制:65535 KB描述将正整数n表示成一系列正整数之和:nn1n2…nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数n的划分。求正整数n的不 同划分个数。 例如正整数6有如…

调整命令行的列数和行数 mode con: cols=100 lines=10000

mode con: cols100 lines10000转载于:https://www.cnblogs.com/passer1991/archive/2013/03/25/2980285.html

写一个 iOS 复杂表单的正确姿势

前言 这几天项目的新需求中有个复杂的表单界面,在做的过程中发现要比想象中复杂很多,有好多问题需要处理。有很多东西值得写下来好好梳理下。 需求分析: 6创建网店1.png上图便是UI根据需求给的高保真, 我们先根据这张图片来描述一…

2014计算机三级网络技术,2014计算机三级网络技术综合题解题思路

2014计算机三级网络技术综合题解题思路,全部自码第一小题 IP地址的计算公式正常IP地址计算:已知IP地址;子网掩码;地址类别:A类地址:1—126(00)B类地址:128—191(10)C类地址:192—223(110) D类地…

word 生成HTML

View Code 1 string wordPath Server.MapPath("/Fileword/" FileUpload1.FileName); 2 string htmlPath Server.MapPath("/Fileword/测试.html");3 //上传word文件4 FileUpload1.SaveAs(wordP…

CCF系列之画图(201409-2)

试题编号: 201409-2试题名称: 画图时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2…

大连理工计算机专业导师,大连理工大学计算机科学与技术学院研究生导师简介-申彦明...

大连理工大学计算机科学与技术学院研究生导师简介-申彦明大连理工大学 免费考研网/2016-05-04申彦明院系:计算机科学与技术学院办公电话:无电子信箱:shendlut.edu.cn更新时间:2014-4-4其他专业:计算机系统结构个人简介…

iOS基础问答面试题连载-附答案

2017-02-02 timhbw CocoaChina以下是一些自己收集的比较基础的问题(大神可以忽略),附上答案,方便大家阅读。俗话说得好,基础不牢,地动山摇。文章末尾会提供PDF版的文档,方便大家木有网的时候也可…

一个非常简单的 ASP.NET MVC 示例:长轮询(又叫:反向 AJAX,英文名:Comet)实现...

关于 长轮询&#xff08;又叫&#xff1a;反向 AJAX&#xff0c;英文名&#xff1a;Comet&#xff09;的介绍&#xff0c;请查看&#xff1a;反向Ajax&#xff0c;第1部分&#xff1a;Comet介绍 下面是代码实现&#xff1a; UI: <p><input type"button" onc…

周记 2016.4.5

1. BUILD_IDpleaseDontKillMe /usr/local/tomcat_car/bin/shutdown.sh /usr/local/tomcat_car/bin/startup.sh 2. windown中mysql解压版设置密码: 最开始mysql没有密码&#xff0c;启动mysql后&#xff1a; cmd -- mysql -u root ----- use mysql , 然后执行下面命令 update…

西北工业大学21计算机考研,西北工业大学2018年计算机考研879专业综合考试大纲...

题号&#xff1a;879《专业综合》考试大纲《专业综合》含数据结构、计算机网络、计算机组成原理、信号与系统四部分组成&#xff0c;四选二。一、数据结构1. 数据结构、抽象数据类型的概念;2. 线性结构的相关内容。通用线性表和特殊线性表(栈、队列、广义表等)的逻辑结构以及物…

iOS 实现多个可变 cell 复杂界面的制作

来源&#xff1a;飘游人 www.jianshu.com/p/9fc838d46f5e 如有好文章投稿&#xff0c;请点击 → 这里了解详情 在日常的开发中&#xff0c;有时会遇到内容块比较多&#xff0c;且又可变的界面&#xff1a; 这个界面中有些内容块是固定出现的&#xff0c;比如最上面的商品详情图…

做销售如何跟单,逼单!共20招!(转)

逼单是整个销售业务过程中最重要的一个环节。如果逼单失败你的整个业务就会失败&#xff0c;其实整个业务过程就是一个“逼”的过程&#xff0c;逼要掌握技巧&#xff0c;不要太操之过急&#xff0c;也不要慢条斯理&#xff0c;应该张弛有度&#xff0c;步步为营&#xff0c;也…

how to write Makefile

http://www.cnblogs.com/aoyihuashao/archive/2010/01/18/1650865.html转载于:https://www.cnblogs.com/hSheng/archive/2013/03/27/2985145.html

职称计算机word2007难吗,职称计算机word2007原题

全国职称计算机考试题库——word2007模块word2007模块第1套试题1.修改当前文本窗体类型为"数字",默认数字为"5"。2.设置用户在键入“中兴瑞典”时自动替换为“中星睿典”。3.将当前图片位置改为四周型环绕。4.用WORD的插入技术,插入如下字符&#xff1a;④…

iOS 9 通用链接(Universal Links)

来源&#xff1a;iOS_小松哥 www.jianshu.com/p/734c3eff8feb 如有好文章投稿&#xff0c;请点击 → 这里了解详情 什么是Universal Links? 在iOS9之前&#xff0c;对于从各种从浏览器、Safari中唤醒APP的需求&#xff0c;我们通常只能使用scheme。但是这种方式需要提前判断系…

为什么你的工作经验不值钱

前言 每年的三月到六月&#xff0c;都是招聘高峰&#xff0c;除了大量的应届毕业生涌入社会之外&#xff0c;还有一些工作了一两年尚未找到稳定归属感的人&#xff0c;也会开始投递简历&#xff0c;是的&#xff0c;基本都是在拿了年终奖之后。作为前端技术主管&#xff0c;有幸…

http://bbs.phome.net/showthread-13-45519-0.html

适用于想使用EmpireCMS建站的用户&#xff1b;EmpireCMS零基础的用户&#xff1b;会使用Dreamweaver设计简单表格式模板的用户。教程在线观看&#xff1a; 安装实例教程&#xff1a; http://www.phome.net/doc/ecmsedu/rm/install.htm入门实例教程&#xff1a; http://www.phom…

计算机32位操作系统最大识别到内存,win7 32位系统可以支持多大的内存_win7 的32位系统最大支持多少g的内存...

大家都知道win7系统有32位和64位之分&#xff0c;而两者的安装配置是不一样的&#xff0c;一般4G内存的我们安装64位的系统&#xff0c;但是很多用户不知道win7 32位系统可以支持多大的内存&#xff0c;这就给大家分享一下win7 的32位系统最大支持多少g的内存吧。一、内存和操作…

33个2017年必须了解的iOS开源库

原文 本文翻译自Medium&#xff0c;原作者为 Paweł Białecki 照片版权&#xff1a;&#xff08;Unsplash/Markus Pe&#xff09; 你好&#xff0c;iOS 开发者们&#xff01;我的名字叫 Paweł&#xff0c;我是一个独立 iOS 开发者&#xff0c;并且是 Enter Universe 的作者。…

codeforces 610D D. Vika and Segments(离散化+线段树+扫描线算法)

题目链接&#xff1a; D. Vika and Segments time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVika has an infinite sheet of squared paper. Initially all squares are white. She introduced a two-dimensional c…

ubuntu下安装redis

安装reids服务器 apt-get install redis-server 测试是否安装成功 redis-cli 安装phpredis扩展 #wgethttps://github.com/nicolasff/phpredis/downloads #tar -zxvf nicolasff-phpredis-2.1.3-124-gd4ad907.tar.gz # mv nicolasff-phpredis-d4ad907 php-5.3.8/ext/phpredis/ # …