打开 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)的更多相关文章

  1. Xcode HeaderDoc 教程(2)

    Code Snippets,让一切变得更简单: 这真的非常easy,不是吗?但还能更简单一些吗? 本站以前介绍过 code snippets.请看这里. Code snippets 在 Xcode 中 ...

  2. 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

    在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...

  3. Xcode HeaderDoc 过程(1)

    原版的: http://www.raywenderlich.com/66395/documenting-in-xcode-with-headerdoc-tutorial 了解如何从代码中生成文档! X ...

  4. xcode简单教程

    1.使用Xcode软件.Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行.也能开发ios程序等,是一种软件.在windows上类似这种能编c语言的还 ...

  5. PhoneGap Xcode iOS教程

    http://mobile.51cto.com/web-334924.htmhttp://phonegap.com/install/http://www.phonegap100.com/jiaoche ...

  6. 【转】怎样创建一个Xcode插件(Part 2)

    原文:How To Create an Xcode Plugin: Part 2/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的时候 ...

  7. iOS开发资源(持续更新)

    vm10虚拟机安装Mac OS X10.10教程 马上着手开发 iOS 应用程序 (Start Developing iOS Apps Today) Xcode使用教程详细讲解 (上) Xcode使用 ...

  8. ios 个推推送集成

    个推推送总结: 个推第三方平台官网地址:http://www.getui.com/cn/index.html 首先去官网注册账号,创建应用,应用的配置信息,创建APNs推送证书上传 P12证书(开发对 ...

  9. 【新发现】不用苹果开发账号就能申请ios证书真机调试

    虽然xcode现在可以免证书进行测试了,但众多跨平台开发者,如果还没注册苹果开发者账号. 想安装到自己非越狱手机测试是无能为力了. 不过新技术来了,只需要普通免费的苹果账号无需付费成为开发者就可以申请 ...

随机推荐

  1. 6.11---swagger文件上传的写法【照着写就行了,主要是需要声明contentType未mutilpart---如果不设置这个,就无法识别文件的】

    MultipartFile 是直接接收前台传过来的文件,File是抽象出来的文件对象,用来表示文件,一般操作都是操作的File,所以需要将MultipartFile转为File controller写 ...

  2. AOP注解不起作用的debug结果

    经过2天的调试,我发现AOP注解配置不起作用居然是表达式的错误导致的 在xml文件中配置的base-package有关,初步认为@PointCut只能使用base-package..*(..)这样的方 ...

  3. MySQL的or/in/union与索引优化 | 架构师之路

    假设订单业务表结构为: order(oid, date, uid, status, money, time, …) 其中: oid,订单ID,主键 date,下单日期,有普通索引,管理后台经常按照da ...

  4. JS——stye属性

    1.样式少的时候使用 this.parentNode.style.backgroundColor="yellow"; 2.style是对象 console.log(box.styl ...

  5. html——表单控件

    基本的表单控件还有html5的一些新的表单控件: <!DOCTYPE html> <html> <head> <meta charset="utf- ...

  6. c++ 以二进制和以文本方式读写文件的区别

    在c++项目开发中,时常涉及到文件读写操作.因此在这里先简单梳理和回顾一下文本模式和二进制模式在进行文件读写上的区别. 1.linux平台下文本文件和二进制文件的读写 在linux平台下进行文件读写时 ...

  7. 【译】x86程序员手册02 - 基本的程序模式

    Chapter 2 -- Basic Programming Model: 基本的程序模式 Introduces the models of memory organization. Defines ...

  8. 【转载】HTTP 基础与变迁

    原文地址:https://segmentfault.com/a/1190000006689489 HTTP HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于 ...

  9. (转)Hibernate框架基础——在Hibernate中java对象的状态

    http://blog.csdn.net/yerenyuan_pku/article/details/52760627 在Hibernate中java对象的状态 Hibernate把对象分为4种状态: ...

  10. linux下如何限制普通用户更改密码

    问题描述: 为了方便linux管理员对所有用户的进行管理,如何限制普通用户更改密码? 解决方法: 禁止普通用户更改密码: /usr/bin/passwd 若要允许普通用户更改密码: /usr/bin/ ...