在Objective C中,当您定义枚举时,所有枚举值都可以在任何地方看到并阻塞全局命名空间。
我想使它成为Java风格,并强制只能通过枚举类型名称访问枚举,例如:与
typedef enum
{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, NUM_OF
} Day;
我想确保这一点
简单地调用MONDAY
会产生编译错误或至少出现警告,并且访问枚举值的唯一方法是Day.MONDAY
或Day::MONDAY
或[Day MONDAY]
或......
在Java中我使用Enums或Interfaces,但这在Objective-C中是否可行?
如果没有,那么我必须命名所有这样的枚举:DAY_MONDAY, DAY_TUESDAY...
,以便在自动完成弹出窗口中更容易找到它们。
答案 0 :(得分:1)
这只是一种解决方法,但您可以使用许多类方法创建自定义接口(这样就不需要创建实例),其中每个方法都代表一个常量。
这样,常数只能在你问的时候访问(即Day.MONDAY
或[Day MONDAY]
)。