Xcode 5有哪些新的文档命令?

Xcode 5的新特性之一就是能够使用特殊的注释语法logging自己的代码。 格式类似于Doxygen,但似乎只支持这些function的一个子集。

哪些命令是支持的,哪些不是?
他们的用法与Doxygen有什么不同?

以下是我在Xcode 5.0.2中find的所有选项的示例

在这里输入图像描述

这是用这个代码生成的:

/** First line text. Putting \\n doesn't create a new line.\n One way to create a newline is by making sure nothing is on that line. Not even a single space character! @a Italic text @em with @@a or @@em. @b Bold text with @@b. @p Typewritter font @c with @@p or @@c. Backslashes and must be escaped: C:\\foo. And so do @@ signs: user@@example.com Some more text. @brief brief text @attention attention text @author author text @bug bug text @copyright copyright text @date date text @invariant invariant text @note note text @post post text @pre pre text @remarks remarks text @sa sa text @see see text @since since text @todo todo text @version version text @warning warning text @result result text @return return text @returns returns text @code // code text while (someCondition) { NSLog(@"Hello"); doSomething(); }@endcode Last line text. @param param param text @tparam tparam tparam text */ - (void)myMethod {} 

笔记:

  • 这些命令必须位于/** block *//*! block */ /*! block */ ,或用/////!作为前缀//!
  • 这些命令使用@ ( headerdoc样式)或\ ( doxygen样式)前缀。 (Ie @b\b都做同样的事情。)
  • 这些命令通常在它们正在描述的项目之前。 (也就是说,如果你想logging一个属性,注释必须放在@property文本之前。)它们可以在同一行上跟着/*!</**<//!<///<
  • 您可以将文档添加到类,函数,属性variables
  • 所有这些命令都以深绿色文本显示,表示它们是有效的命令,除了@returns
  • 您可能需要构build您的项目(或重新启动Xcode)才能显示最新的文档更改。

在哪里看到文档:

1.在代码完成期间,您将看到简要的文字:

在这里输入图像描述

这将显示简短的文字(没有格式); 如果不存在简要文本,则会显示所有文本到第一个@block的连接; 如果不存在(比如你以@return开始),那么它将连接所有的文本去掉所有的@commands。

2.选项 – 单击标识符名称:

在这里输入图像描述

3.在快速帮助检查器面板中

(请参阅第一张截图。)

4.在Doxygen

由于Xcode 5中的命令与Doxygen兼容,您可以下载并使用Doxygen生成文档文件。

其他说明

对于Doxygen的一般性介绍以及如何loggingObjective-C代码, 这个页面看起来是一个很好的资源。

一些支持的命令的描述:

  • @brief :将在描述字段的开头插入文本,并且是在代码完成期间将出现的唯一文本。

以下不起作用:

  • \n :不会生成换行符。 创build换行符的一种方法是确保没有任何内容在这一行上。 甚至没有一个单一的空间人物!
  • \example

以下是不支持的(他们甚至不显示在深绿色):

  • \引用
  • \ docbookonly
  • \ enddocbookonly
  • \ endinternal
  • \ endrtfonly
  • \ endsecreflist
  • \ idlexcept
  • \ mscfile
  • \ refitem
  • \ relatedalso
  • \ rtfonly
  • \ secreflist
  • \短
  • \片段
  • \目录
  • \ vhdlflow
  • \〜
  • \”
  • ::
  • \ |

苹果保留关键字:

苹果使用似乎是保留的关键字,只能在他们的文档中起作用。 虽然它们呈深绿色,但看起来我们不能像苹果那样使用它们。 您可以在AVCaptureOutput.h文件中查看Apple使用情况的示例。

以下是这些关键字的列表:

  • @abstract,@availibility,@class,@discussion,@deprecated,@method,@property,@protocol,@related,@ref。

最好的情况是,关键字会在描述字段中产生一个新行(例如@discussion)。 在最坏的情况下,关键字及其后面的任何文本都不会出现在快速帮助中(例如@class)。

Swift 2.0使用以下语法:

 /** Squares a number. - parameter parameterName: number The number to square. - returns: The number squared. */ 

请注意@param现在是怎样的- parameter

您现在也可以在文档中包含项目符号:

 /** - square(5) = 25 - square(10) = 100 */ 

Senseful:

您可能需要在对文档进行最新更改之前构build项目。

有时这对我来说还不够。 closuresXcode并打开项目备份通常可以补救这些情况。

我在.h文件和.m文件中也得到不同的结果。 当文档注释位于头文件中时,我无法获得新行。

Swift 2.0中的大部分格式已经改变(Xcode7ß3,在ß4中也是如此)

而不是:param: thing description of thing (就像在Swift 1.2中那样)

现在是- parameter thing: description of thing

大多数关键字已被replace为- [keyword]: [description]而不是:[keyword]: [description] 。 目前,不起作用的关键字列表包括, abstractdiscussionbriefprepostsaseeavailabilityclassdeprecatedmethodpropertyprotocolrelatedref