【发布时间】:2014-04-20 11:11:26
【问题描述】:
我对 Objective-C 非常陌生。我遇到了这个问题:
NS_ENUM(NSUInteger, SetOfValues)
{
firstRow = 0,
secondRow,
thirdRow,
rowCount
};
现在,我需要在实现中更改这些变量:
@implementation BillyBurroughs
...
- (void) modifyrowInformation
{
secondRow = 0;
thirdRow = 1;
rowCount = 2
}
@end
当然,我收到一条错误消息 - 无法赋值。现在,我可以简单地将变量读取为局部变量,例如
+ (void) initialize {
localFirstRow = 0
...
}
然后修改它们,但是有没有一种更简洁、更懒惰的方法来做到这一点而无需额外的变量?对不起,如果这是一个非常基本的问题。感谢您的意见。
【问题讨论】:
-
你想用这些“变量”做什么?枚举是常量,您可以将变量设置为枚举的值。
-
还有比分配它们更好的选择吗?像 :P 一个可变的 NS_ENUM 之类的东西?至于你的问题,这个类的一百万个地方都在使用常量。更改一个并分配给局部变量对我来说意味着一百万次更改。所以我希望我能把它们抽象成更简单的东西。
-
现在,我也不希望它们是静态的。所以除了定义 4 个属性,我真的想不通。
-
一个枚举是常量...期间,没有枚举实例。所以它是完全相同的内存位置的 1000 倍。
-
我建议将枚举设为一个类并在每个文件中对其进行分配初始化,但我真的不明白你想要做什么。
标签: objective-c variables scope nsenumerator