如何将此枚举转换为NS_ENUM?

时间:2015-01-22 16:25:46

标签: objective-c enums 32bit-64bit

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

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

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

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

但是,一个特殊的库可以格式化它的枚举:

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

如何对此进行转换?直观地,我想将enum NameOfEnum替换为我的标准typedef NS_ENUM(NSInteger, NameOfEnum),并完全删除最后一行。 这是正确的做法,还是可能会破坏这个广泛的图书馆中的其他东西呢?

1 个答案:

答案 0 :(得分:0)

你是对的。最后一个创建一个枚举,然后创建一个具有相同名称的类型。