iOS文档注释

时间:2022-08-30 13:30:26

Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法。

首先要说的就是文档注释提取的工具:主要是介绍HeaderDoc和appleDoc

1.我们平常长按option键同时鼠标点击,弹出的文档就是Xcode会自动使用HeaderDoc生成的。如图:

iOS文档注释

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

iOS文档注释

然后要说的就是一些编写文档注释的规范了:(注意本文值讨论文档注释,仅仅作为解释说明的注释不会涉及)

单行注释

共有以下几种:

行前注释:(功能较多,可用作对属性、方法、类的声明,通常用作对属性的声明)

///

行后注释:(一般对属性、成员变量的声明等)

/**<
/*!<
///<
//!<

使用的方法如下:

/// 姓名
@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文档注释的更多相关文章

  1. 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释

    原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 1.文件注释 文件注释就在每一个文件开头 ...

  2. java文档注释--javadoc的用法

    1.前言 Java中有三种注释方式.前两种分别是 // 和 /* */,主要用于代码的注释,以此来方便代码的可读性.第三种被称作说明注释或文档注释,它以 /** 开始,以 */结束,文档注释允许你在程 ...

  3. 将C&num;文档注释生成&period;chm帮助文档

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

  4. Eclipse 的快捷键以及文档注释、多行注释的快捷键

    一.多行注释快捷键 1.选中你要加注释的区域,用ctrl+shift+C 或者ctrl+/ 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上/*    */注释 3.以上快捷 ...

  5. &lbrack;java基础&rsqb;文档注释

    转载自:http://blog.163.com/hui_san/blog/static/5710286720104191100389/ 前言 Java 的语法与 C++ 及为相似,那么,你知道 Jav ...

  6. Java 文档注释

    Java只是三种注释方式.前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束. 说明注释允许你在程序中嵌入关于程序的信息.你可以使用javadoc工具软件来生成信息, ...

  7. Xcode 文档注释方法

    摘自:http://www.cnblogs.com/bomo/p/4815963.html 文档注释,可以在调用时显示注释信息,让调用者更好的理解方法的用途. 注释方法: /// 注释 和 /** 注 ...

  8. 工具分享——将C&num;文档注释生成&period;chm帮助文档

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

  9. C&num; XML 文档注释文件格式

    在编写 C# 代码时,只要在注释按照格式加入 XML 文档注释,例如: /// <summary> /// 这里是类的注释. /// </summary> public cla ...

随机推荐

  1. MSMQ学习

    一.理论准备 MSMQ(MicroSoft Message Queue,微软消息队列)官方的解释是:在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布 ...

  2. WPF 实现圆形进度条

    项目中用到圆形进度条,首先就想到使用 ProgressBar 扩展一个,在园子里找到迷途的小榔头给出的思路和部分代码,自己加以实现. 进度小于60显示红色,大于60则显示绿色.效果如下: 基本思路: ...

  3. 采用OLEDB数据库方式向指定的Excel添加数据,怪像!

    我们都知道,对Excel进行操作,其实方法是多种多样的,例如采用Office.Interop;例如采用ASPCell:例如采用NPOI:再例如采用数据库连接的方式OLEDB,etc. 还是先说说背景吧 ...

  4. Python 3 利用 subprocess 实现管道&lpar; pipe &rpar;交互操作读&sol;写通信

    这里我们用Windows下的shell来举例: from subprocess import * #因为是举例,就全部导入了 为了方便你理解,我们用一个很简单的一段代码来说明: 可以看见我们利用Pop ...

  5. 2&period;2&period;5 NIO&period;2 Path 和 Java 已有的 File 类

    NIO与IO交互 toPath() File -- Path toFile() Path -- File Demo: import java.io.File; import java.nio.file ...

  6. Swing-setBorder&lpar;&rpar;用法-入门

    注:本文内容转自:Swing编程边框(Border)的用法总结.内容根据笔者理解稍有整理. 函数说明: public void setBorder(Border border) 设置此组件的边框.Bo ...

  7. Excel技巧--提取中文字串

    类似的,如果要提取上图第1列的商品,不要型号,如第2列. 可以考虑使用SEARCHB函数. searchb与search的区别,在于searchb函数以字节为单位搜索,search函数以字符为单位搜索 ...

  8. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  9. 学习笔记TF013&colon;卷积、跨度、边界填充、卷积核

    卷积运算,两个输入张量(输入数据和卷积核)进行卷积,输出代表来自每个输入的信息张量.tf.nn.conv2d完成卷积运算.卷积核(kernel),权值.滤波器.卷积矩阵或模版,filter.权值训练习 ...

  10. webkit技术内幕读书笔记 &lpar;四&rpar;

    资源缓存 资源缓存的目的是为了提高资源使用的效率,其基本思想是建立一个资源的缓存池,当需要请求资源的时候先去资源池查找是否有相应的资源,如果没有则向服务器发送请求,webkit收到资源后将其设置到该资 ...