2010-01-11 15 views
11

Aunque las últimas versiones de Doxygen claim better handling of Objective-C categories, todavía parece ahogarse en categorías en mi código fuente. Me pregunto si alguien ha conseguido documentar las categorías correctamente.Categorías de Doxygen y Objective-C

A modo de ejemplo, que tienen una categoría en NSString definido como:

@interface NSString (CCFExtensions) 

con un archivo de interfaz llamada NSString_CCFExtensions.h y archivo de implementación NSString_CCFExtension.m

Doxygen referencia al archivo con la superclase ; pero ninguno de los métodos de la categoría está documentado, a pesar de la sintaxis doxygen aparentemente válida.

¿Cuál es la marca de origen correcta para que las categorías Objective-C funcionen?

Respuesta

14

Después de algunas pruebas de regresión (y un poco de sentido común) la solución:

Digamos que tengo una categoría Cat1 en NSObject, por doxygen para analizar mi archivo de categoría, ya que debe ser más o menos así:

#import <Cocoa/Cocoa.h> 

/*! \category NSObject(Cat1) 
    \abstract A category on NSObject 
*/ 

@interface NSObject(Cat1) 
    - (void)foo; 
@end 

y el archivo de implementación:

#import "NSObject_Cat1.h" 

@implementation NSObject(Cat1) 

- (void)foo { 
    // do something 
} 

@end 

Es importante destacar que coloque ningún espacio entre el nombre de la clase y el nombre de la categoría.