如何将此枚举转换为 NS_ENUM?

How do I convert this enum to an NS_ENUM?

我一直致力于将 Objective-C 代码转换为使用 NS 类型,以便我们可以更轻松地在 32 位和 64 位之间切换。大多数 enum 我 运行 看起来像这样:

typedef enum {
    ValueA = 0,
    ValueB,
    ...
    ValueN,
} NameOfEnum;

所以我只是用 typedef NS_ENUM(NSInteger, NameOfEnum) 替换 typedef enum,删除尾随的 NameOfEnum,然后继续,使代码看起来像这样:

typedef NS_ENUM(NSInteger, NameOfEnum) {
    ValueA = 0,
    ValueB,
    ...
    ValueN,
};

但是,一个特殊的库将其枚举格式化为如下格式:

enum NameOfEnum
{
    ValueA = 0,
    ValueB,
    ...
    ValueN,
};
typedef enum NameOfEnum NameOfEnum;

我该如何转换? 直觉上我想用我的标准 typedef NS_ENUM(NSInteger, NameOfEnum) 替换 enum NameOfEnum 并完全删除最后一行。 这是正确的做法吗,或者这是否会破坏这个庞大的库中的其他东西?

你是对的。最后一个先创建一个枚举,然后创建一个同名的类型。