在 Objective C 中,当你定义一个枚举时,所有的枚举值都是可见的,并且阻塞了全局命名空间。
我想使其成为 Java 风格并强制枚举只能通过枚举类型名称访问,例如和
typedef enum
{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, NUM_OF
} Day;
我想确保
只需调用
MONDAY
产生编译错误或至少警告,并且访问枚举值的唯一方法是类似 Day.MONDAY
的内容。或 Day::MONDAY
或 [Day MONDAY]
或者...在 Java 中,我要么使用枚举,要么使用接口(interface),但这在 Objective-C 中可行吗?
如果没有,那么我必须像这样命名所有枚举:
DAY_MONDAY, DAY_TUESDAY...
使它们更容易在自动完成弹出窗口中搜索。
最佳答案
这只是一种变通方法,但您可以创建具有多个类方法的自定义接口(interface)(因此无需创建实例),其中每个方法代表一个常量。
这样常量只能按您的要求访问(即 Day.MONDAY
或 [Day MONDAY]
)。
关于objective-c - 如何限制Objective C中枚举值的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388997/