Хотя последние выпуски Doxygen требуют лучшей обработки категорий Objective-C, это все еще, кажется, дросселирует на категориях в моем исходном коде. Я задаюсь вопросом, получил ли кто-то его к категориям документа правильно.
Как пример, у меня есть категория на NSString, определенном как:
@interface NSString (CCFExtensions)
с интерфейсным файлом под названием NSString_CCFExtensions.h и файлом реализации NSString_CCFExtension.m
Doxygen сошлется на файл с суперклассом; но ни один из методов категории не документируется, несмотря на на вид допустимый doxygen синтаксис.
Что корректная исходная разметка должна получить работу категорий Objective-C?
После некоторого регрессионного тестирования (и немного здравого смысла) решение:
Допустим, у меня есть категория 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
Важно, чтобы между именем класса и именем категории не было пробела.