gpt4 book ai didi

objective-c - 如何评论 Apple 对 Doxygen 的 block 扩展?

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:43 25 4
gpt4 key购买 nike

Doxygen announced in their changelog for version 1.7.2 to support Apple's block extension .我想知道生成文档的语法是什么。我找不到任何提示——在 doxygen 配置文件(版本 1.7.2)中也找不到。
更新:1.7.5 版于 2011 年 8 月 14 日发布。我仍然没有找到如何为 Apple block 编写文档。

最佳答案

查看 1.7.1 和 1.7.2 之间的差异,我相信这行的意思是 Doxygen 扫描器已更新以在识别 block 类型的 typedefs 时支持 Apple 的 block 语法.例如,您可以像这样记录一个函数指针 typedef:

///
/// This is a typedef for a function pointer type.
/// It takes an NSUInteger parameter, an id adopting protocol Foo, and has no return value.
///
typedef void (*MyFunctionPtrType)(NSUInteger p1, id<Foo> p2);

得到这样的输出:

Doxygen output for function pointer typedef

他们的扫描器的变化似乎增加了对 block 类型定义的支持,如下所示:

///
/// This is a typedef for a block type.
/// It takes an NSUInteger parameter, an id adopting protocol Foo, and has no return value.
///
typedef void (^MyBlockType)(NSUInteger p1, id<Foo> p2);

确实,使用最新版本的 Doxygen,会产生如下输出:

Doxygen output for block typedef

您可以记录 block 类型的全局变量,但行为有点不稳定。例如,有了这个:

///
/// This is a global variable of type MyBlockType. It logs the parameters to the console.
///
MyBlockType myGlobalBlock = ^(NSUInteger p1, id<Foo> p2){

/**
* This is a block comment inside my block, which would get
* concatted into the "in body" description if this were a function.
* but won't be because this is a block.
*/
NSLog(@"p1: %lu p2: %@", p1, p2);
};

///
/// This is the definition for the function MyFunction
///
void MyFunction(NSUInteger p1, id<Foo> p2)
{
/**
* This is a block comment inside my function, which will get
* concatted into the "in body" description.
*/

NSLog(@"p1: %lu p2: %@", p1, p2);
}

我得到了这个输出,这有点不是我想要的:

Doxygen output for global block typed variable compared to a function

幸运的是,我怀疑 block 类型的全局变量在实践中并不是那么常见的模式,所以 Doxygen 在处理它们方面不是非常出色这一事实并不是什么大问题。似乎没有任何证据表明在 diff 中进一步增加了对 block 的支持。

关于objective-c - 如何评论 Apple 对 Doxygen 的 block 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3916078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com