在Objective-C枚举中查找整数值

Nei*_*rds 6 enums objective-c

在Objective-C中是否可以查看某个int值是否在某个特定值enum?例如,在这个枚举中:

enum  {
  ValidationLoginFailed         = 2000,
  ValidationSessionTokenExpired = 2001,
  ValidationSessionTokenInvalid = 2002,
  ValidationEmailNotFound       = 2003  
}; 
typedef int ValidationStatusCodes;
Run Code Online (Sandbox Code Playgroud)

有可能看到一个任意整数值是ValidationStatusCodes enum

[ValidationStatusCodes contains:intResponseCode]
Run Code Online (Sandbox Code Playgroud)

或至少

[self intIsInRangeofEnum:ValidationStatusCodes forValue:intResponseCode]
Run Code Online (Sandbox Code Playgroud)

Chu*_*uck 9

没有比做更简单的方法了

(ValidationLoginFailed == intResponseCode ||
ValidationSessionTokenExpired == intResponseCode ||
ValidationSessionTokenInvalid == intResponseCode ||
ValidationEmailNotFound == intResponseCode)
Run Code Online (Sandbox Code Playgroud)

通常,C对于执行动态事物或反映类型并不是很有帮助,而枚举是C功能.


Dav*_*har 3

不带enum. Anenum不是 Objective-C 对象,因此您无法像您正在做的那样向它发送消息。

也许使用 NSDictionary ?