Objective c 如何将此枚举转换为NS_枚举?
我一直在努力将Objective-C代码转换为使用Objective c 如何将此枚举转换为NS_枚举?,objective-c,enums,32bit-64bit,Objective C,Enums,32bit 64bit,我一直在努力将Objective-C代码转换为使用NS类型,这样我们就可以更轻松地在32位和64位之间切换。我遇到的大多数enums如下所示: typedef enum { ValueA = 0, ValueB, ... ValueN, } NameOfEnum; typedef NS_ENUM(NSInteger, NameOfEnum) { ValueA = 0, ValueB, ... ValueN, }; 因此,我只需将
NS
类型,这样我们就可以更轻松地在32位和64位之间切换。我遇到的大多数enum
s如下所示:
typedef enum {
ValueA = 0,
ValueB,
...
ValueN,
} NameOfEnum;
typedef NS_ENUM(NSInteger, NameOfEnum) {
ValueA = 0,
ValueB,
...
ValueN,
};
因此,我只需将typedef enum
替换为typedef NS_enum(NSInteger,NameOfEnum)
,删除后面的NameOfEnum,然后继续,生成如下代码:
typedef enum {
ValueA = 0,
ValueB,
...
ValueN,
} 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
,然后完全删除最后一行这样做是正确的,还是可能会打破这个庞大的库中的其他东西?你是正确的。最后一个先创建一个枚举,然后创建一个同名的类型。谢谢!这一变化是否会产生任何可预见的问题?这是同一回事。在早期的“C”中,最后一个例子很常见。