iOS文档注释

Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法。
首先要说的就是文档注释提取的工具:主要是介绍HeaderDoc和appleDoc
1.我们平常长按option键同时鼠标点击,弹出的文档就是Xcode会自动使用HeaderDoc生成的。如图:
quik look查看HeaderDoc生成的文档
2.appleDoc只为Objective-C服务,可以在文档书写完成之后使用appledoc生成docSet,能生成和Apple一个风格的文档,如下所示:
appleDoc生成的docSet效果图
然后要说的就是一些编写文档注释的规范了:(注意本文值讨论文档注释,仅仅作为解释说明的注释不会涉及)

单行注释

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

///

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

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

使用的方法如下:

/// 姓名
@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.指出你为什么要包含一些头文件

转载于:https://www.cnblogs.com/Mike-zh/p/5136885.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值