Objective c 在ObjC中,如何将枚举转换为id?

Objective c 在ObjC中,如何将枚举转换为id?,objective-c,syntax,Objective C,Syntax,给定如下方法签名: + (MY_ENUM_SET_A) stringToEnum:(NSString*)strVal; + (MY_ENUM_SET_B) stringToEnum:(NSString*)strVal; 我想将它们更改为: + (id) stringToEnum:(NSString*)strVal; 但是在我返回之前的实现方法中:我是否需要强制转换或执行任何特殊操作来将枚举转换为id?我认为您希望将它们分开,因为它们是分开的enums,所以我建议您执行当前正在执行的操作。这个

给定如下方法签名:

+ (MY_ENUM_SET_A) stringToEnum:(NSString*)strVal;
+ (MY_ENUM_SET_B) stringToEnum:(NSString*)strVal;
我想将它们更改为:

+ (id) stringToEnum:(NSString*)strVal;

但是在我返回之前的实现方法中:我是否需要强制转换或执行任何特殊操作来将枚举转换为id?

我认为您希望将它们分开,因为它们是分开的
enum
s,所以我建议您执行当前正在执行的操作。

这个问题没有意义。如果有基于枚举值返回字符串的方法,则已返回
NSString*
id
。那你为什么要投什么?如果您试图执行
返回(id)someEnumValue,则不要这样做-请阅读C和Objective-C教程。它们之间没有直接转换或转换。
id
表示任何随机的Objective-C类,
enum
通常表示
int
unsigned int
值。您知道
id
表示指向对象的指针,
enum
基本上是一个固定值整数,它们不是同一件事。也许你没有正确表达你的问题,这不是你想做的…@trojanfoe-是的,我知道。我真的不想使用两个不同的方法名,所以我想知道是否有任何方法可以通过
id
返回枚举来坚持使用一个方法名。。。我不认为这是可以做到的。。。但我知道什么是对的?所以我一定要发帖问一些专家@H2CO3-没有想到会有屈尊的语气:(我想你应该把它们分开,因为它们是分开的
enum
s,所以我建议你做你目前正在做的事情。