【问题标题】:Can the underlying type of an Objective-C enum be specified?可以指定 Objective-C 枚举的基础类型吗?
【发布时间】:2012-10-24 23:28:16
【问题描述】:

我惊讶地发现 Xcode 没有为以下代码发出错误,这在 C 中是无效的:

typedef enum : NSUInteger {
    FLAG_A = 1,
    FLAG_B = 2,
    FLAG_C = 4
} MyFlags;

这似乎使NSUInteger 成为MyFlags 枚举的基础类型,与C# 设置枚举基础类型的语法非常相似。

这个语法是按照它出现的那样做,还是有别的意思?

【问题讨论】:

    标签: objective-c enums


    【解决方案1】:

    这是从 C++11 借用的一个特性,用于确保枚举的特定大小。它允许在框架的公共 API 中使用枚举,而不必担心 ABI 最终会崩溃。

    Clang implements this feature 并允许在 Objective-C 中将其用作语言扩展。

    【讨论】:

      【解决方案2】:

      这在目标 c 中可以正常工作。您可以在枚举中为这些参数设置任何值。

      【讨论】:

        猜你喜欢
        • 2013-01-13
        • 2022-12-22
        • 2010-10-25
        • 1970-01-01
        • 1970-01-01
        • 2011-02-08
        • 2016-11-30
        • 2019-06-15
        相关资源
        最近更新 更多