Objective C切换语句和命名整数常量 [英] Objective C switch statements and named integer constants
问题描述
为了区分两个滚动视图,我有一个控制器,作为两个滚动视图的委托,放置在由上述视图控制器管理的视图中。尝试使用 switch
语句(而不是简单的指针与 if
语句比较)。我已将这两个滚动视图标记为0和1像这样
NSUInteger const kFirstScrollView = 0;
NSUInteger const kSecondScrollView = 1;
当我尝试在switch语句中使用这些常量时,编译器说case语句不是常量。
开关(scrollView.tag){
case kFirstScrollView:{
// do stuff
}
case kSecondScrollView:{
// do stuff
}
}
我做错了什么?
这可以通过使用匿名不一定如此)枚举
类型:
枚举{
kFirstScrollView = 0,
kSecondScrollView = 1
};
switch(scrollView.tag){
case kFirstScrollView:{
// do stuff
}
case kSecondScrollView:{
// do stuff
}
}
这将无错编译。 >
I have a controller which serves as a delegate to two scrollviews which are placed in view managed by aforementioned view controller.
To distinguish between two scroll views I'm trying to use switch
statement (instead of simple pointer comparison with if
statement). I have tagged both scroll views as 0 and 1 like this
NSUInteger const kFirstScrollView = 0;
NSUInteger const kSecondScrollView = 1;
When I try to use these constants in a switch statement, the compiler says that case statements are not constants.
switch (scrollView.tag) {
case kFirstScrollView: {
// do stuff
}
case kSecondScrollView: {
// do stuff
}
}
What am I doing wrong?
This can be solved through the use of an anonymous (though not necessarily so) enum
type:
enum {
kFirstScrollView = 0,
kSecondScrollView = 1
};
switch (scrollView.tag) {
case kFirstScrollView: {
// do stuff
}
case kSecondScrollView: {
// do stuff
}
}
This will compile without errors.
这篇关于Objective C切换语句和命名整数常量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!