Категории Doxygen и Objective-C - PullRequest
11 голосов
/ 11 января 2010

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

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

@interface NSString (CCFExtensions)

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

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

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

1 Ответ

14 голосов
/ 12 января 2010

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

Допустим, у меня есть категория 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

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

...