¿Cuáles son los nuevos comandos de documentación disponibles en Xcode 5? [cerrado]


Una de las nuevas características de Xcode 5 es la capacidad de documentar su propio código con una sintaxis de comentario especial. El formato es similar a Doxygen, pero parece soportar solo un subconjunto de esas características.

¿Qué comandos son compatibles y cuáles no?
¿Alguno de sus usos difiere de Doxygen?

Author: Senseful, 2013-10-04

4 answers

Aquí hay un ejemplo de todas las opciones que he encontrado a partir de Xcode 5.0.2

introduzca la descripción de la imagen aquí

Que se generó con este código:

/** 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 {}

Notas:

  • Los comandos deben estar en un /** block */, /*! block */, o con el prefijo /// o //!.
  • Los comandos funcionan con el @ (headerdoc style) o el \ (prefijo doxygen style). (Es decir, @b y \b ambos hacen lo mismo.)
  • Los comandos generalmente vienen antes de la artículo que están describiendo. (Es decir, si está tratando de documentar una propiedad, el comentario debe venir antes del texto @property.) Que puede venir después, en la misma línea, con /*!<, /**<, //!<, ///<.
  • puede agregar documentación a clases, funciones, propiedades, y variables.
  • Todas estas órdenes aparecen en un texto verde oscuro para indicar que son órdenes válidas, excepto @returns.
  • Es posible que necesite construir su proyecto (o reiniciar Xcode) antes de que aparezcan los últimos cambios en su documentación.

Dónde ver la documentación:

1. Durante el código completo, verá el breve texto:

introduzca la descripción de la imagen aquí

Esto mostrará el texto breve (sin formato); si no existe ningún texto breve, mostrará una concatenación de todo el texto hasta el primer bloque@; si no existe ninguno (por ejemplo, comienza con @return), entonces concatará todo el texto separando todos los comandos@.

2. Opción-hacer clic en un nombre identificador:

introduzca la descripción de la imagen aquí

3. En el panel Inspector de Ayuda rápida

(Ver primera captura de pantalla.)

4. In Doxygen

Dado que los comandos en Xcode 5 son compatibles con Doxygen, puede descargar y usar Doxygen para generar archivos de documentación.

Otras notas

Para una introducción general a Doxygen y cómo documentar el código Objective-C, esta página parece un buen recurso.

Descripciones de algunos de los comandos soportados:

  • @brief: insertará texto al principio del campo de descripción, y es el único texto que aparecerá durante la finalización del código.

Lo siguiente no funciona:

  • \n: no genera una nueva línea. Una forma de crear una nueva línea es asegurarse de que no hay nada en esa línea. ¡Ni un solo personaje espacial!
  • \example

Los siguientes no son compatibles (ni siquiera aparecen en la oscuridad verde):

  • \cite
  • \docbookonly
  • \enddocbookonly
  • \endinternal
  • \endrtfonly
  • \endsecreflist
  • \idlexcept
  • \ mscfile
  • \ refitem
  • \relatedalso
  • \ rtsólo
  • \secreflist
  • \short
  • \ snippet
  • \ tabla de contenidos
  • \ vhdlflow
  • \~
  • \"
  • .
  • ::
  • \|

Manzana reservada palabras clave:

Apple utiliza lo que parecen ser palabras clave reservadas que solo funcionan en su documentación. Aunque aparecen en verde oscuro, parece que no podemos usarlos como lo hace Apple. Puedes ver ejemplos del uso de Apple en archivos como AVCaptureOutput.h.

Aquí hay una lista de algunas de esas palabras clave:

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

En el mejor de los casos, la palabra clave causa una nueva línea en el campo Descripción (por ejemplo, @ discusión). En el peor de los casos, la palabra clave y cualquier texto que la siga no aparecerán en la ayuda rápida (por ejemplo, @class).

 405
Author: Senseful,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-04 01:51:13

Swift 2.0 utiliza la siguiente sintaxis:

/**
        Squares a number.

        - parameter parameterName: number The number to square.

        - returns: The number squared.
    */

Observe cómo @param es ahora - parameter.

Ahora también puede incluir viñetas en su documentación:

/**
        - square(5) = 25
        - square(10) = 100
    */
 16
Author: Senseful,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-05 20:31:01

Senseful:

Es posible que deba crear su proyecto antes de que aparezcan los últimos cambios en su documentación.

A veces esto no ha sido suficiente para mí. Cerrar Xcode y abrir la copia de seguridad del proyecto generalmente soluciona esos casos.

También estoy obteniendo diferentes resultados .h archivos y .archivos m. No puedo obtener nuevas líneas cuando los comentarios de la documentación están en un archivo de encabezado.

 8
Author: weezma2004,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-15 22:58:32

La mayor parte del formato ha cambiado para Swift 2.0 (a partir de Xcode7 ß3, también es cierto en ß4)

En lugar de :param: thing description of thing (como fue en Swift 1.2)

Ahora es - parameter thing: description of thing

La mayoría de de las palabras clave han sido reemplazadas por - [keyword]: [description] en lugar de :[keyword]: [description]. Actualmente la lista de palabras clave que no trabajo incluye, abstract, discussion, brief, pre, post, sa, see, availability, class, deprecated, method, property, protocol, related, ref.

 5
Author: mittens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-04 05:20:00