You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Objective-C中前置声明NS_OPTIONS?

如何在Objective-C中前置声明NS_OPTIONS?

在Objective-C里前置声明NS_OPTIONS其实和处理NS_ENUM的思路差不多,操作起来很简单,我给你梳理清楚:

前置声明的语法

NS_OPTIONS本质是Apple专为位掩码枚举设计的宏,底层基于整数类型,所以它的前置声明语法和NS_ENUM完全一致。你只需要声明类型的别名和对应的整数基底类型,不需要写出具体的枚举值:

// 前置声明MSSOption这个NS_OPTIONS类型
typedef NS_OPTIONS(NSInteger, MSSOption);

后续的完整定义

在需要具体使用枚举值的文件里,你再补上完整的枚举定义即可:

// 完整定义MSSOption的枚举值
typedef NS_OPTIONS(NSInteger, MSSOption) {
    MSSOptionNone = 0,
    MSSOptionName = 1 << 0,
    MSSOptionEmail = 1 << 1,
    MSSOptionTelephone = 1 << 2
};

注意事项

  • 如果你只是需要在某个头文件里把这个NS_OPTIONS类型作为参数、返回值或者成员变量的类型,前置声明就完全足够,不需要引入完整的定义,这样还能减少头文件依赖。
  • 一定要保证前置声明和后续完整定义的基底类型(这里是NSInteger)一致,否则会出现编译错误。

内容的提问来源于stack exchange,提问作者foobar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:54:55