Категории Doxygen и Objective-C

Хотя последние версии Doxygen требуют лучшей обработки категорий Objective-C, по-прежнему кажется, что они помещаются в категории в моем исходном коде. Мне интересно, если кто-то получил его, чтобы правильно документировать категории.

В качестве примера у меня есть категория в NSString, определенная как:

@interface NSString (CCFExtensions)

с файлом интерфейса NSString_CCFExtensions.h и файлом реализации NSString_CCFExtension.m

Doxygen будет ссылаться на файл с суперклассом; но ни один из методов категории не документирован, несмотря на кажущийся действительный синтаксис doxygen.

Какова правильная разметка источника для работы категорий Objective-C?

Ответ 1

После некоторого регрессионного тестирования (и небольшого здравого смысла) решение:

Скажем, у меня есть категория Cat1 в NSObject, для doxygen для анализа файла заголовка моей категории он должен выглядеть примерно так:

#import <Cocoa/Cocoa.h>

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

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

и файл реализации:

#import "NSObject_Cat1.h"

@implementation NSObject(Cat1)

- (void)foo {
    //  do something
}

@end

Важно отметить, что между именем класса и именем категории нет пробелов.