【发布时间】:2015-08-06 05:26:48
【问题描述】:
参考this post,似乎在Objective-C中不可能定义两个与本例中具有相同值的enums:
enum AnEnum {
AnyValue
};
enum AnotherEnum {
AnyValue // Error: Redefinition of enumerator 'AnyValue'
};
我想了解为什么有机会为enums 设置名称但显然没有任何可能使用它(例如在Java 中通过AnotherEnum.AnyValue 调用值)。
【问题讨论】:
-
您设置名称并且可以使用它,您不能做的是限定您的使用范围,但范围是 Obj-C 中的一个更广泛的问题,并且有一些约定可以解决这个问题跨度>
-
是的,对不起,我的帖子有点太笼统了......所以你可以例如定义
enum类型的变量(这也会导致上下文敏感的代码支持),但我我缺少两个方面。 -
1) 我想了解为什么上述限制存在于 Objective-c 中的背景和 2) 最常见的解决方法是什么。
-
有一个技巧可以让
struct像命名空间enum一样工作,Mike Ash 在他的博客中展示了这一点:mikeash.com/pyblog/… -
@JoshCaswell 酷指针!
标签: objective-c enums namespaces declaration redefinition