Xcode HeaderDoc 教程(2)

Code Snippets,让一切变得更简单:

这真的很容易,不是吗?但还能更简单一些吗?

本站曾经介绍过 code snippets,请看这里

Code snippets 在 Xcode 中扮演着无名英雄的角色。一个snippet 是一个可以重用的代码块(存储在 snippet 库中)。Snippets 甚至可以包含一些需要你去填充的占位符。这意味着什么?你可以用 snipppet来为你进行文档化。这真是个不错的注意。

在 MathAPI.h 中,在原有的注释上面加入以下内容:


/*!  * @discussion <#description#>

  * @param <#param description#>

  * @return <#return description#> 

*/

注意,当你粘贴上述代码时,“<# #>”之间的内容会变成一个token,你可以通过 tab 键在 token 之间来回切换。这就像你编写代码时使用的自动完成功能。

接下来我们使用一个小技巧。打开 Utilities 面板中的 CodeSnippets Library 检查器窗口,选中这段注释块,将它拖到 Code Snippet Library 窗口中(从某个 token 例如<#description#>开始拖):

将弹出一个窗口让你输入 snippet 的某些信息,并以此来创建一个自动完成快捷方式。你可以在其中编写代码。按照如下形式填写:

随时可以编辑 snippet 的代码或快捷方式。你可以编辑 snippet也可以重新创建新的 snippet。要编辑 snippet,点击 Code Snippet Library 中的 snippet,然后点 Edit 按钮。

要想让你的 snippet 生效,首先删除原有注释,然后将鼠标放到addNumber:toNumber: 方法的 + 号前面,输入doccomment,然后回车,你的 snippet 将自动出现。通过 Tab 键在3个 token 间移动,并填充它们。最终完成的文档化结果如下:


/*!  * @discussion A really simple way to calculate the sum of two numbers.

  * @param firstNumber An NSInteger to be used in the summation of two numbers.

  * @param secondNumber The second half of the equation.

  * @warning Please make note that this method is only good for adding non-negative numbers.

  * @return The sum of the two numbers passed in. 

*/

当然,第2个 @param 标签和 @warning 标签需要你手动书写,但snippet 还是节省了不少的时间。

你可以继续这样做。看,文档化什么的都是菜!

Typedefs的文档化

打开 Car.h,在 class 之前还有一些东西要文档化。有一个NS_ENUM,即 typedef enum,一个块,几个属性,一个空方法。先别气馁,这很容易,分分钟的事情。

还记得 @typedef 标签吗?这个顶级标签稍微特殊一点。它可以对typedef enum 或者 typedef struct 之类的东东进行注释。 根据你注释的对象的不同,它会包含与定义的类型相关的二级标签。

以 enum 为例,它会包含 @constant 标签,用于每个常量(对于struct,则会是 @field 标签)。

找到 enum OldCarType。它包含两个常量,是用于古典汽车的。在typedef 声明之上,将原来的注释替换为:


/*!  * @typedef OldCarType

  * @brief A list of older car types.

  * @constant OldCarTypeModelT A cool old car.

  * @constant OldCarTypeModelA A sophisticated old car.

  */

typedef enum {

OldCarTypeModelT,

OldCarTypeModelA

} OldCarType;

编译,然后在 OldCarType 上使用alt+左键。你会看到 @brief 标签的内容出现了。现在,在 OldCarTypeModelA 上 alt+左键。看到你的注释了吗?悲剧发生了。

别担心,你仍然可以找回想要的东西——我们必须要正确的东西放在正确的位置上。在 enum 中添加如下注释:

But fear not, you canstill get your information where you need it - we‘ve got the trusty tripleforward slash in our tool belt. Add the comments to the enum like you see here:


typedef enum {

/// A cool, old car.

OldCarTypeModelT,

/// A sophisticated older car.

OldCarTypeModelA

} OldCarType;

编译,alt+左键,就能看到你的注释了。

在这个类中只有一个 NS_ENUM,因此接下来有你自己进行文档化。常量已经注释了,你只要对整个NS_ENUM 进行一个总体的注释就可以了。

/*!  * @typedefCarType

  * @brief Alist of newer car types.

  * @constantCarTypeHatchback Hatchbacks are fun, but small.

  * @constantCarTypeSedan Sedans should have enough room to put your kids, and your golfclubs

  * @constantCarTypeEstate Estate cars should hold your kids, groceries, sport equipment,etc.

  * @constantCarTypeSport Sport cars should be fast, fun, and hard on the back.

*/

注意:这个enum 是通过宏来声明的,悲催的 Xcode 不能完全支持和 typedef enum 一样的文档特性,虽然NS_ENUM 实际上是声明 enums 的推荐的方法。也许这一点将来会改变,但目前还没有,只能徒呼奈何。

现在来文档化 CarType 属性。


/// Indicates the kind of car as enumerated in the "CarType" NS_ENUM

@property (nonatomic, assign) CarType carType;

编译,在 carType 变量名上 alt+左键。

仍然是 Car.h,继续文档化 typedef block。见下:


/*!  * @brief A block that makes the car drive.

  * @param distance The distance is equal to a distance driven when the block is ready to execute. It could be miles, or kilometers, but not both. Just pick one and stick with it. ;]  

*/ typedef void(^driveCompletion)(CGFloat distance);

typedef block 的文档化和之前的并无多少不同,它包含了:

  • 一个 @brief 标签,简单说明了一下这个块的作用。
  • 一个 @param 标签,说明调用块时需要传递的参数。

添加格式化代码到文档中

有时,对于程序员来说,告诉他怎样使用一个方法会更好。

例如,Car 类的 driveCarWithComplete: 方法。

这个方法以块作为参数,因为块对于新手来说一般比较困难,因此最好是告诉程序员如何使用这个方法。

这需要使用 @code 标签。在 driveCarWithCompletion方法声明之前添加如下内容:


/*!  * @brief The car will drive, and then execute the drive block

  * @param completion A driveCompletion block

  * @code [car driveCarWithCompletion:^(CGFloat distance){      NSLog(@"Distance driven %f", distance);  }];

  */

编译,在方法名上使用alt+左键。如下图所示。

检查文档

你学会了如何添加注释,如果 Xcode 能帮你检查你的工作,就像Xcode会自动检查代码中的语法错误,那岂不是更好?有一个好消息,Clang 有一个标志,叫做“CLANG_WARN_DOCUMENTATION_COMMENTS”,可以用于检查 HeaderDoc 格式的注释。

打开 DocumentationExamples的项目设置,点击 Build Settings,找到 DocumentationComments, 将值设置为 YES


Xcode HeaderDoc 教程(2)

时间: 2024-08-24 11:25:24

Xcode HeaderDoc 教程(2)的相关文章

Xcode HeaderDoc 教程(3)

打开 MathAPI.h,将第一个 @param 标签的參数名由firstNumber 改动为 thirdNumber,然后编译. 有一个警告发生.甚至提出了改动建议.它不会影响不论什么事情,但有助于检查文档中的错误. 特殊凝视 Xcode 还支持几种特殊凝视.对于你或者使用你代码的人非常实用. 打开 Car.m,在 driveCarWithCompletion: 方法中,在调用completion 块之前加入下列凝视: // FIXME: This is broken // !!!: Holy

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

在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重要的还有代码的注释和文档编写.不管代码写的有多好,如果缺少了对应的好的注释文档,很有可能在将来带来麻烦.不幸的是,许多开发者都忽视或忽略了代码文档的重要性,而这非常糟糕,因为好的程序不仅仅是好的代码.它需要更多的东西. 谈到编写注释文档,显然我不是说仅仅简单的在实现文档里添加几行注释.肯定是更多的东

PhoneGap Xcode iOS教程

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

怎样创建一个xcode插件 第2部分/3部分

本文翻译自 https://www.raywenderlich.com/97756/creating-an-xcode-plugin-part-2 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的时候,使用的是xcode7.2.1,经过验证,本部分中说的依然是有效的.在文中你可以学习到一系列的技能,非常值得一看.这些技能不单单只是用来创建插件,对你平时的调试等,也有非常大的帮助. 欢迎你来到创建xcode插件教程的第二部分.在第一部分

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

原文:How To Create an Xcode Plugin: Part 2/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的时候,使用的是xcode7.2.1,经过验证,本部分中说的依然是有效的.在文中你可以学习到一系列的技能,非常值得一看.这些技能不单单只是用来创建插件,对你平时的调试等,也有非常大的帮助. 欢迎你来到创建xcode插件教程的第二部分.在第一部分中, 你已经了解了怎么通过NSNotification来窥探x

【新技术】免ios开发者账号申请ios证书打包ipa真机调试

虽然xcode现在可以免证书进行测试了,但众多跨平台开发者,如果还没注册苹果开发者账号. 想安装到自己非越狱手机测试是无能为力了. 不过新技术来了,只需要普通免费的苹果账号无需付费成为开发者就可以申请iOS证书打包ipa安装到自己手机测试,强大吧! 这个神器就是Appuploader,ios app测试及上架辅助工具. Appuploader安装教程 当然如果要上架App Store还是需要注册一个付费的苹果开发者账号. 如果只是安装ios应用到自己手机测试,现在只需要注册一个普通的苹果账号就行

iOS开发——远程通知,远程推送(RemoteNotification)

iOS中的远程通知,也叫远程推送,使用频率非常频繁,它主要是通过苹果apns服务器主动发起找到被推送的设备,把信息传达给用户,如果对应程序没有正在运行,那么远程通知就会先到通知中心,展示在通知栏上面,这里记录下我使用远程通知的几个步骤. 一.创建推送证书. 推送证书的创建非常简单,跟创建开发证书类似. 1. 创建APP ID,勾选Explicit App ID也就是明确的ID,这样才能勾选使用下面的Push Notification. 然后直接一路到complete即可. 2. 创建推送证书,推

[转载] Objectiv-C 入门一二三

http://my.oschina.net/fuckphp/blog/92993 http://my.oschina.net/fuckphp/blog/93217 http://my.oschina.net/fuckphp/blog/96246 Xcode使用教程详细讲解 (上)http://mobile.51cto.com/iphone-273735.htm

2018最新苹果APP上架App Store流程(超详细)

本文转发:https://blog.csdn.net/xxw888/article/details/73618837 2018最新整理iOS app上架app详细教程 上架iOS需要一个付费688的开发者账号,还没有的话申请一个或者借用. 申请苹果开发者账号教程 上架App Store之前是先安装到苹果手机测试调试好,app能正常运行再上架 iOS真机调试测试教程 上架过程分七个步骤,按步骤一步步来. 仔细看这个流程,少走很多弯路,不用一步步去试错,节省时间. 1.创建APP身份证(App ID