如何将此枚举转换为 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
并完全删除最后一行。 这是正确的做法吗,或者这是否会破坏这个庞大的库中的其他东西?
你是对的。最后一个先创建一个枚举,然后创建一个同名的类型。
我一直致力于将 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
并完全删除最后一行。 这是正确的做法吗,或者这是否会破坏这个庞大的库中的其他东西?
你是对的。最后一个先创建一个枚举,然后创建一个同名的类型。