问题 Doxygen和Objective-C类别


虽然最新发布的Doxygen 要求更好地处理Objective-C类别,它似乎仍然在我的源代码中阻塞类别。我想知道是否有人能够正确记录类别。

作为一个例子,我在NSString上有一个类别定义为:

@interface NSString (CCFExtensions)

使用名为NSString_CCFExtensions.h的接口文件和实现文件NSString_CCFExtension.m

Doxygen将使用超类引用该文件;尽管看似有效的doxygen语法,但没有记录任何类别方法。

使Objective-C类别正常工作的正确源标记是什么?


8146
2018-01-11 15:04


起源



答案:


经过一些回归测试(以及一点常识)解决方案:

假设我在NSObject上有一个类别Cat1,对于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

重要的是,在类名和类别名之间不要留空格。


14
2018-01-12 13:55