8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何使用 Doxygen 记录:typedef NS_ENUM(NSUInteger, EnumType)

Amar 2月前

115 0

Apple 提供了 NS_ENUM 和 NS_OPTION 宏(链接至文档)来定义 Objective-C 中的枚举。以下是 NS_ENUM 的示例:--- EnumName.h ---#pragma once#import

Apple 提供了 NS_ENUM NS_OPTION 宏( 链接至文档 )来定义 Objective-C 中的枚举。以下是的示例 NS_ENUM :

--- EnumName.h ---

#pragma once
#import <Foundation/NSObjCRuntime.h>

typedef NS_ENUM(NSUInteger, EnumName)
{
  EnumMemberA,
  EnumMemberB,
  EnumMemberC,
};

为这种枚举类型定义(以及枚举成员)编写 Doxygen 文档的语法是什么?

起初我尝试了直观的方法: @brief 在定义之前写一个文档块。

--- EnumName.h ---

#pragma once
#import <Foundation/NSObjCRuntime.h>

/// @file

/// @brief A brief description.
typedef NS_ENUM(NSUInteger, EnumName)
{
  EnumMemberA,
  EnumMemberB,
  EnumMemberC,
};

结果:Doxygen 在其生成的输出 () 中包含了文档块,但将定义解析为函数 ()。使用枚举类型的位置(例如函数/方法参数)未链接 ()。

接下来我尝试 @enum EnumName 在前面添加一个命令。

--- EnumName.h ---

#pragma once
#import <Foundation/NSObjCRuntime.h>

/// @file

/// @enum EnumName
/// @brief A brief description.
typedef NS_ENUM(NSUInteger, EnumName)
{
  EnumMemberA,
  EnumMemberB,
  EnumMemberC,
};

结果:Doxygen 发出此警告: warning: Documentation for undefined enum 'EnumName' found 并且在其生成的输出中根本不包含文档块()。

我可以理解 Doxygen 可能无法解析 typedef NS_ENUM 构造,但在这种情况下,我希望能够编写与实际源代码分离的文档块。

我正在使用 Doxygen 1.10.0,通过 Homebrew 安装在 Intel Mac 上的 macOS 13.5.2 上。

帖子版权声明 1、本帖标题:如何使用 Doxygen 记录:typedef NS_ENUM(NSUInteger, EnumType)
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Amar在本站《objective-c》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我通过改变 Doxygen 的预处理器扩展设置来使其工作:

    ENABLE_PREPROCESSING  YES
    MACRO_EXPANSION       YES
    EXPAND_ONLY_PREDEF    YES
    PREDEFINED            "NS_ENUM(enum_type,enum_name)=enum enum_name"
    

    这改变了原来的定义

    typedef NS_ENUM(NSUInteger, EnumName)
    

    看起来像这样:

    typedef enum EnumName
    

    这对于 Doxygen 解析器来说已经足够好了,因此可以编写常规文档块。

  • 我正在尝试创建一个带有边框的窗口,该边框在所有窗口(包括全屏窗口)上都保持不变。类似于共享屏幕时缩放所做的操作。现在我确实有一个 c...

    我正在尝试创建一个带有边框的窗口,该窗口在所有窗口(包括全屏窗口)上都保持不变。类似于您共享屏幕时缩放所做的操作。现在我确实有一个在 silo 中运行良好的代码,我已将其粘贴在下面,即在所有屏幕(包括全屏应用程序)上保持不变。

    但是,当我尝试通过节点绑定公开相同的代码,以便我的电子应用程序可以触发该窗口的初始化时,它仅在全屏模式下显示在桌面窗口和电子窗口(当使用 orderFront 强制时)上,但即使使用 orderFront 或 orderFrontRegardless,也会在其他全屏应用程序上隐藏。

    当我通过电子上下文列出所有窗口时,我看到有 3 个窗口,1 个是电子窗口,1 个是新创建的窗口,还有一个我不确定是什么。

    我是 Objective-C 和原生 macOS 开发的新手,如能得到任何帮助我将不胜感激。

    @interface GreenBorderView : NSView
    @end
    
    @implementation GreenBorderView
    
    - (void)drawRect:(NSRect)dirtyRect {
        // Draw a green border
        [[NSColor greenColor] set];
        [NSBezierPath setDefaultLineWidth:5.0];
        [NSBezierPath strokeRect:NSInsetRect(self.bounds, 5, 5)];
    }
    
    @end
    
    @interface YourExistingController : NSObject
    @property (nonatomic, strong) NSWindow *window;
    - (void)startManagingWindow;
    
    @end
    
    @implementation YourExistingController
    
    - (void)startManagingWindow {
        // Show the windows
        self.window = [[NSWindow alloc] initWithContentRect:[NSScreen mainScreen].frame
                                                            styleMask:NSWindowStyleMaskBorderless
                                                              backing:NSBackingStoreBuffered
                                                                defer:NO];
    
        [self.window setCollectionBehavior:(NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorFullScreenAuxiliary)];
        // Create and add the GreenBorderView to the window's contentView
        GreenBorderView *greenBorderView = [[GreenBorderView alloc] initWithFrame:self.window.contentView.bounds];
        [self.window.contentView addSubview:greenBorderView];
    
        // Set the GreenBorderView as the contentView
        [self.window setContentView:greenBorderView];
    
        // Configure the window
        [self.window setLevel:NSMainMenuWindowLevel + 1];
        //[window setLevel:NSStatusWindowLevel];
        [self.window setBackgroundColor:[NSColor clearColor]];
        [self.window setOpaque:NO];
        [self.window setTitle: @"Green border"];
    
        [self.window makeKeyAndOrderFront:nil];
    
        // Retrieve the list of windows
        NSArray<NSWindow *> *allWindows = [NSApp windows];
    
        // Log information about each window
        NSString *toMatch = @"UC LOCAL";
        for (NSWindow *windowitr in allWindows) {
            NSString *title = [windowitr title];
            NSLog(@"Window title: %@", title);
    
        }
    
        // Schedule a timer to bring the window to front every second
        [NSTimer scheduledTimerWithTimeInterval:1.0
                                         repeats:YES
                                           block:^(NSTimer *timer) {
                                               [self.window orderFrontRegardless];
                                           }];
    }
    
    @end
    
    
    void drawFullScreenBorder() {
        @autoreleasepool {
            YourExistingController *controller = [[YourExistingController alloc] init];
            [controller startManagingWindow];
        }
    }
    
  • RJS 2月前 0 只看Ta
    引用 4

    尝试在静态方法文件中调用另一个静态方法,但我得到:Tweak.xm:324:11:错误:没有已知的选择器“test”实例方法静态void rddhandler(id self2,SEL _cmd){[

    尝试在静态方法文件中调用另一个静态方法,但我得到:Tweak.xm:324:11:错误:没有已知的选择器“测试”实例方法

    static void rddhandler(id self2, SEL _cmd){
        [self test]; //
    }
    
    static void test() {
        NSLog(@"test");
    }
    
  • test() 不是方法。它是一个函数。调用它的语法是 test() .

  • 我尝试在按下按钮时在我的应用中播放本地影片。但是当我按下按钮时,出现以下错误并且应用崩溃。'NSInvalidArgumentException',原因:'*** -[N...

    我尝试在应用中播放本地电影,然后按下按钮。但是,当我按下按钮时,出现以下错误,并且应用崩溃。

    ‘NSInvalidArgumentException’,原因:‘*** -[NSURL initFileURLWithPath:]: nil 字符串参数’

    这是我用来播放电影的代码。

    NSString *path=[[NSBundle mainBundle]pathForResource:@"koi swimming"   ofType:@"m4v"];
    NSURL *url = [NSURL fileURLWithPath:path];
    AVPlayer *player = [AVPlayer playerWithURL:url];
    AVPlayerViewController *controller = [[AVPlayerViewController alloc]init];
    controller.view.frame = self.view.bounds;
    [self.view addSubview:controller.view];
    [controller.player play];
    

    我正在附加我的捆绑文件结构的图像。

    image of file structure

    有人可以帮忙玩这个吗?

    扩展的图像文件。

    images file expanded

  • 使用展开的 \'images\' 文件夹更新 Xcode 中的屏幕截图,以便我们可以在树中看到 m4v 文件。确保文件名完全匹配,包括大小写。确保为您的目标选择了该文件。

  • 在 Xcode 菜单上选择“查看”->“检查器”->“文件”。然后选择 m4v 文件。查看文件检查器的“目标成员资格”部分,并确保已选中目标的复选框。

  • SIDU 2月前 0 只看Ta
    引用 9

    似乎您尝试查找的文件( koi swimming.m4v )未添加到目标 Bundle (位于 mainBundle 此处)。

    捆绑包是您的应用程序的运行时资源,它与构建时资源不同。

    在添加运行时 所需文件时,请确保将其添加到 所需的目标

    Add time

    此外,您可以从文件检查器中添加/删除目标中的任何文件,例如:

    File inspector

返回
作者最近主题: