Doxygen和Objective-C类别

时间:2010-01-11 15:04:43

标签: objective-c doxygen categories

虽然Doxygen claim better handling of Objective-C categories的最新版本,但它似乎仍然在我的源代码中阻塞类别。我想知道是否有人能够正确记录类别。

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

@interface NSString (CCFExtensions)

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

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

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

1 个答案:

答案 0 :(得分:14)

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

假设我在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

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