Xcode HeaderDoc 教程(3)
打开 MathAPI.h,将第一个 @param 标签的參数名由firstNumber 改动为 thirdNumber,然后编译。

有一个警告发生。甚至提出了改动建议。它不会影响不论什么事情,但有助于检查文档中的错误。
特殊凝视
Xcode 还支持几种特殊凝视。对于你或者使用你代码的人非常实用。
打开 Car.m,在 driveCarWithCompletion: 方法中,在调用completion 块之前加入下列凝视:
|
// FIXME: This is broken // !!!: Holy cow, it should be checked! // ?? ?: Perhaps check if the block is not nil first? |
这里出现了3中凝视:
- FIXME: 某个地方须要修正
- !!!: 某个地方须要注意。
- ???: 代码中有问题。或者代码是可疑的。
这些凝视不但有助于你浏览代码。并且 Xcode 绘制 Jump Bar 中显示它们。点击Jump Bar,例如以下图所看到的:
你将看到这3个凝视以粗体显示:

到此。你已经全然掌握了怎样对项目进行文档化。花一些时间对项目的其它属性和方法操作一番,并加入一些自己的东西。
看看在凝视块中改变一些东西或者删除某个标签会发生什么。这将让你明确凝视格式怎样对文档造成影响的。
用headerdoc2html 创建 HTML文档
文档化是由一个 HeaderDoc 的工具完毕的。
当 Xcode 安装时。它就已经安装好了。它除了解释你的凝视。显示一个弹出菜单以及将凝视在Quick Help 中显示之外,还能够在你文档化之后创建 HTML、XML 以及联机帮助手冊。
本节介绍 HTML 文件的制作。
假设你对用 HeaderDoc 怎样创建在线文档感兴趣,请參考HeaderDoc 用户指南.
打开终端。转到 DocumentationExamples 项目文件夹:
|
cd /path/to/your/folder |
确认该路径下包括了 Xcodeproject 文件(“DocumentationExamples.xcodeproj”)。
然后用下列命令创建 HTML 文档:
|
headerdoc2html -o ~/Desktop/documentation DocumentationExamples/ |
此时终端会有很多输出。
当创建完毕。返回桌面,出现一个名为documentation 的文件夹。
双击打开,找到 Car_h 文件夹。打开 index.html。真酷——你拥有了一份精美的文档!
解释一下吧。headerdoc2html 脚本有两个參数:
So what justhappened? Well, you ran the headerdoc2htmlscript with 2 options:
- -o ~/Desktop/documentation – 这个參数指定输出的 Html 文件路径——即桌面的 documentation 文件夹。
- DocumentationExamples/ – 该參数指定要解析的源文件位于 DocumentationExamples 文件夹(不包括项目文件夹下的其它文件夹,由于它们并不包括源码)
问题: 最新版本号headerdoc2html有个问题,用 google chrome打开 index.html后,左边的文件夹显示不正常,但 Safari打开正常。
并且,你会注意到你早先对 carType 属性所做的凝视并未显示。
看来最新版本号的headerdoc2html 不能正确解析 /// 类的凝视,你能够使用 /*! 类型的凝视取代。
这非常酷,但还能够更进一步。除了手动进入到输出文件夹中进行导航,HeaderDoc还会创建一个主文件夹索引。
返回终端,导航至新建的 documentation 文件夹,输入:
|
cd ~/Desktop/documentation |
然后输入命令。创建内容索引:
|
gatherheaderdoc . |
gatherheaderdoc自己主动查找文件夹,为 . 文件夹(表示当前文件夹)创建索引。
用 Finder 打开 documentation 文件夹。你会发现多出一个 masterTOC.html 文件。打开它,它将列出全部已文档化的属性、方法、枚举和块的链接。
你能够将全部 HTML 文件放到 web server上。然后全部人都能够訪问你的文档!
VVDocumenter-Xcode
最后的内容是 VVDocumenter-Xcode,一个第三方 Xcode插件。它能让你的文档化工作简单至比使用早先介绍的 Code Snippet 更easy。
首先,从 Github 下载插件。
你所须要做的全部工作就是打开项目,然后 Build。它会将插件自己主动安装到~/Library/ApplicationSupport/Developer/Shared/Xcode/Plug-ins 文件夹。
然后重新启动 Xcode。再次打开 DocumentationExamples项目。在 MathAPI.h。删除 addNumber:toNumber 方法的凝视块。然后在方法声明上面输入:
|
/// |
VVDocumenter-Xcode 将自己主动创建凝视块,包括全部必要的 @param 标签以及自己主动完毕 token。
是不是太给力了?
打开 Car.h,删除 NS_ENUM CarType 的凝视,以及每一个常量的凝视。在NS_ENUM 声明之上。输入:
|
/// |
这回。它会在 enum 之上创建 discussion 标签,甚至还每一个常量上面放入了必要的凝视!
VVDocumenter-Xcode 使你的生活更加轻松。假设你想定制VVDocumenter-Xcode。在Xcode中,使用 Window>VVDocumenter菜单。
这里,你能够改变自己主动完毕keyword、凝视风格以及其它。你想怎样定制 VVDocumenter-Xcode都行。
VVDocumenter-Xcode 为我省下了大量的时间。
接下来做什么?
终于完毕的演示样例项目在 这里下载。
在你自己的代码中进行文档化。
尝试自己编写 code snippet 并使用VVDocumentor。
尝试不同的风格并找出自己的最爱,在实际工作中使用它们。
无疑,对于你来说,苹果 HeaderDoc 用户指南也是一个非常好的学习文档。
假设你有不论什么疑问或建议,请在以下的讨论中告诉我。
Xcode HeaderDoc 教程(3)的更多相关文章
- Xcode HeaderDoc 教程(2)
Code Snippets,让一切变得更简单: 这真的非常easy,不是吗?但还能更简单一些吗? 本站以前介绍过 code snippets.请看这里. Code snippets 在 Xcode 中 ...
- 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码
在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...
- Xcode HeaderDoc 过程(1)
原版的: http://www.raywenderlich.com/66395/documenting-in-xcode-with-headerdoc-tutorial 了解如何从代码中生成文档! X ...
- xcode简单教程
1.使用Xcode软件.Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行.也能开发ios程序等,是一种软件.在windows上类似这种能编c语言的还 ...
- PhoneGap Xcode iOS教程
http://mobile.51cto.com/web-334924.htmhttp://phonegap.com/install/http://www.phonegap100.com/jiaoche ...
- 【转】怎样创建一个Xcode插件(Part 2)
原文:How To Create an Xcode Plugin: Part 2/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的时候 ...
- iOS开发资源(持续更新)
vm10虚拟机安装Mac OS X10.10教程 马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today) Xcode使用教程详细讲解 (上) Xcode使用 ...
- ios 个推推送集成
个推推送总结: 个推第三方平台官网地址:http://www.getui.com/cn/index.html 首先去官网注册账号,创建应用,应用的配置信息,创建APNs推送证书上传 P12证书(开发对 ...
- 【新发现】不用苹果开发账号就能申请ios证书真机调试
虽然xcode现在可以免证书进行测试了,但众多跨平台开发者,如果还没注册苹果开发者账号. 想安装到自己非越狱手机测试是无能为力了. 不过新技术来了,只需要普通免费的苹果账号无需付费成为开发者就可以申请 ...
随机推荐
- iOS动画——CoreAnimation
CoreAnimation在我之前的UIKit动画里面简单的提了一句CoreAnimation动画,其实大家别看它类库名种有个animation,实际上animation在这个库中只占有很小的地位. ...
- [ NOIP 2002 ] TG
\(\\\) \(\#A\) 均分纸牌 有\(N\)堆纸牌,每堆有若干张,但纸牌总数必为\(N\)的倍数.可以在任一堆上取若干张纸牌,然后移动给其左右任意一侧的纸牌堆,求将所有的牌堆牌数都变为平均值最 ...
- Ubuntu安装gnome-shell桌面环境
1.sudo apt-get install gnome-shell 输入命令直接回车就行了 2.出现了这个问题 Unable to locate package ?? sudo apt-get up ...
- 《Java编程的逻辑》第三部分 泛型与容器
- [Windows Server 2008] Serv-U安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Serv- ...
- python_时间日期
time.time()用于获取当前时间戳 从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数. localtime = time.localtime(time.t ...
- mybatis 简单的入门实例
第一步:添加mybaties的架包 第二步:配置mybaties的文件 <?xml version="1.0" encoding="UTF-8" ?> ...
- WinForm窗体中窗口控件的生成
1:button控件的生成方式 Button button = new Button(); button.Size = new Size(80, 80); button.Location = new ...
- json和pickle的序列化
PICKle模块:
- 使用脚手架创建vue项目之后会有很多警告,如何关闭它!
依次打开build→webpack.base.conf.js文件,然后找到createLintingRule,把里面的内容选择性的删除即可,就是这么easy;