iOS文档注释
Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法。
首先要说的就是文档注释提取的工具:主要是介绍HeaderDoc和appleDoc
1.我们平常长按option键同时鼠标点击,弹出的文档就是Xcode会自动使用HeaderDoc生成的。如图:

2.appleDoc只为Objective-C服务,可以在文档书写完成之后使用appledoc生成docSet,能生成和Apple一个风格的文档,如下所示:

然后要说的就是一些编写文档注释的规范了:(注意本文值讨论文档注释,仅仅作为解释说明的注释不会涉及)
单行注释
共有以下几种:
行前注释:(功能较多,可用作对属性、方法、类的声明,通常用作对属性的声明)
///
行后注释:(一般对属性、成员变量的声明等)
/**<
/*!<
///<
//!<
使用的方法如下:
/// 姓名
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *phone; /**< 电话 */
@property (nonatomic, copy) NSString *address; /*!< 住址 */
@property (nonatomic, assign) float height; ///< 身高
@property (nonatomic, assign) NSUInteger age; //!< 年龄
多行注释
常用以下几种:(经常用在类声明和方法声明之前)
/// line1
/// line2
/**
* line1
* line2
*/
/*! line1
* line2
*/
示例如下:
/*!
* Comment
*/
@interface Comment : NSObject
/**
* an exmaple
*
* @param obj input parameter
*/
- (void)commonMethod:(id)obj;
/// exmaple 2
/// @param obj input parameter
- (void)commonMethod2:(id)obj;
@end
注释Tag
在写方法的文档注释的时候多用一些参数说明, 这时候会用到@param标签,除此之外还有其他标签
下面是在所有的方法声明前使用的标签:
| 标签 | Example | 含义 |
|---|---|---|
| @param | @param myValue The value to process. | 对方法的参数描述 |
| @result | @result Returns 1 on success, 0 on failure. | 对返回值的描述 |
| @return | @result Returns 1 on success, 0 on failure. | 和@result.相同 |
| @templatefield | @templatefield base_type The base type to store in the linked list. | Each of the function’s template fields (C++). |
| @throws | @throws bananas | 对抛出异常的描述 |
| @var | @var myVar Description goes here |
对局部变量或方法的描述 |
##### 还有一些可以在类型定义,方法声明和头文件中都可以使用的tag
| 标签 | Example | 含义 |
|---|---|---|
| @abstract | @abstract write the track to disk | 简短描述,不要超过1行 |
| @apiuid | @apiuid //my_ref/doc/magic | 重写与这个注释绑定的 API UID (apple_ref),也就是重写这个注释的唯一标识, 使用不当会带来标识冲突等问题 |
| @attribute @attributelist @attributeblock |
@attribute My Attribute Name Value goes here. | 添加一个自定义的不一定符合规则的tag |
| @availability | @availability 10.3 and later | 适用版本描述 |
| @brief | @brief write the track to disk | 简短描述 |
| @discussion | @discussion This is what this function does. @some_other_tag | 详细描述 |
| @indexgroup | @indexgroup Name of Group | 提供放在发布页面的组织信息,如果没有使用这个tag,会使用来自内部的class或者头文件的组织信息 |
| @internal | @internal | 标记为内部文档,如果生成文档时在命令行设置了 --document-internal,这个文档才会被生成 |
| @link | @link //apple_ref/c/func/function_name link text goes here @/link 或者 @link function_name link text goes here @/link 或者 @link function_name @/link |
插入一个API ref所在的链接 |
| @namespace | @namespace BSD Kernel | 对所处的命名空间的说明 |
| @see | @see apple_ref Title for link | 参数与@link相同 如果API reference已经在see或seealso中出现这个tag会被忽略 |
| @seealso | @seealso apple_ref Title for link | 参数与@link相同 如果API reference已经在see或seealso中出现这个tag会被忽略 |
| @textblock | @textblock My text goes here @/textblock | @textblock和@/textblock之间出现的tag全都是文档内容 |
| @updated | @updated 2003-03-14 | 上次更新的时间 |
##### 另外有一些关于整个文件的一些文档注释tag:
| 标签 | Example | 含义 |
|---|---|---|
| @author | @author Anon E. Mouse | 作者 |
| @charset | @charset utf-8 | 生成HTML文件使用的编码,同@encoding |
| @compilerflag | @compilerflag -lssl | 使用时需要添加的编译指令 |
| @copyright | @copyright Apple | 版权,这个值会覆盖在配置文件中的值,同时不能被分为多行 |
| @CFBundleIdentifier | @CFBundleIdentifier org.mklinux.driver.test | 所在的包名、程序的BundleID |
| @encoding | @encoding utf-8 | 为生成的HTML文件设置编码 |
| @flag | @flag -lssl The SSL Library |
参见@compilerflag |
| @ignore | @ignore API_EXPORT | 告诉HeaderDoc删除指定的标记 |
| @ignorefuncmacro | @ignorefuncmacro __P | 告诉HeaderDoc不要包含指定的方法宏 |
| @language | @language c++ | 已经废弃的tag。指定当前的开发语言 |
| @meta | @meta robots index,nofollow 或者 @meta http-equiv="refresh" content="0;http://www.apple.com" |
将要添加到每个页面的meta tag,可以用这两种形式中的一种指定 @meta 或 @meta ,但是不能分成多行 |
| @preprocinfo | @preprocinfo This header uses the DEBUG macro to enable additional debugging. | 描述与processor相关的宏(-DDEBUG, for example)指定之后的行为) |
| @related | @related Sixth cousin of Kevin Bacon. | 指出与这个头文件关联的另一个头文件,可以使用多个@related标签 |
| @unsorted | @unsorted | 指出你不希望HeaderDoc帮你对头文件的内容排序 |
| @version | @version 2.3.1 | 文档适用的版本 |
| @whyinclude | @whyinclude Because it was there. | 指出你为什么要包含一些头文件 |
iOS文档注释的更多相关文章
- 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释
原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 1.文件注释 文件注释就在每一个文件开头 ...
- java文档注释--javadoc的用法
1.前言 Java中有三种注释方式.前两种分别是 // 和 /* */,主要用于代码的注释,以此来方便代码的可读性.第三种被称作说明注释或文档注释,它以 /** 开始,以 */结束,文档注释允许你在程 ...
- 将C#文档注释生成.chm帮助文档
由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...
- Eclipse 的快捷键以及文档注释、多行注释的快捷键
一.多行注释快捷键 1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/* */注释 3.以上快捷 ...
- [java基础]文档注释
转载自:http://blog.163.com/hui_san/blog/static/5710286720104191100389/ 前言 Java 的语法与 C++ 及为相似,那么,你知道 Jav ...
- Java 文档注释
Java只是三种注释方式.前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束. 说明注释允许你在程序中嵌入关于程序的信息.你可以使用javadoc工具软件来生成信息, ...
- Xcode 文档注释方法
摘自:http://www.cnblogs.com/bomo/p/4815963.html 文档注释,可以在调用时显示注释信息,让调用者更好的理解方法的用途. 注释方法: /// 注释 和 /** 注 ...
- 工具分享——将C#文档注释生成.chm帮助文档
由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...
- C# XML 文档注释文件格式
在编写 C# 代码时,只要在注释按照格式加入 XML 文档注释,例如: /// <summary> /// 这里是类的注释. /// </summary> public cla ...
随机推荐
- xen下离线读取虚拟机磁盘镜像的补丁
之前在xen-3.4.2和xen-4.1.2下做过几个基于qemu模拟器的补丁,就是想着不用通过xm create(xen3下面)或xl create(xen4下面)启动虚拟机,而能直接去解析磁盘镜像 ...
- 10款最好的 Bootstrap 3.0 免费主题和模板
Twitter Bootstrap 框架已经广为人知,用于加快网站,应用程序或主题的界面开发,并被公认为是迄今对于Web开发的最有实质性帮助的工具之一.在此之前的,各种各样的界面库伴随着高昂的维护成本 ...
- jQuery radio取值,checkbox取值,select取值
语法解释: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkTex ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- Alpha版本十天冲刺——Day 1
站立式会议 会议总结 队员 今天完成 遇到的问题 明天要做 感想 鲍亮 α版本接口文档初步编写,任务统筹 绘制燃尽图出错 学习http资源访问,服务器请求接口demo测试 作为PM,之前对团队具体要做 ...
- 7.1WebApi2的异常处理
这篇文章描述错误和异常处理在 ASP.NET Web API. HttpResponseException 如果 Web API 控制器引发未捕获的异常,会发生什么?默认情况下,大多数异常被转译为 H ...
- BZOJ 4724: [POI2017]Podzielno
Description 由\([0,B-1]\)的数字构造一个 \(B\) 进制数字,使得他是 \(B-1\) 的倍数. Sol 贪心+二分. 首先 \(X\) 是 \(B-1\) 的倍数,那么有 \ ...
- 启动apache和tomcat端口被占用解决办法
1,打开控制台,使用命令 netstat -aon|findstr 8090 找出端口被占用的进程, 2,使用 taskkill -f -pid 4116(进程id)杀掉当前占用端口的进程
- 百度地图用ip获取当前位置的经纬度(高精度)
步骤比较简单先上百度地图API官网,申请一个应用AK(访问凭据):查看一下高进度定位的API,看看是否都符合要求下面直接上代码 /** * 根据ip获取地理坐标 * @param ip * @retu ...
- js遮罩效果
function ShowLoadingMaskLayer(text) { var htmlContent = '<div id=\"masklayer\">' + ' ...