【问题标题】:problem with Switch Case开关盒的问题
【发布时间】:2010-10-30 06:28:51
【问题描述】:

我正在动态创建一个 UIView 并在其中添加一个滚动视图。我想要的是创建多个滚动视图并使用 SWITCH Case 添加它们。

我在 UIView 上的按钮的 IBAction 上传递了一个名为 num 的整数值。并调用该函数来创建滚动视图。

-(IBAction) button1pressed{
    num = 1;
    NSLog(@"value %d",num);
}

我有 6 个这样的 IBAction,其 num 的值从 1 到 6 不等。我想切换 num 的值。

-(void)add_scrollview{
    Switch(num) {
        Case:1 {
            NSLog(@"case 1 executed");              
            break;      
        }
        Case:2 {
            NSLog(@"case 2 executed");
            break;
        } 
        Case :3 {
            NSLog(@"case 3 executed");
            break;
        }
        default:{
            break;
        }
    }
}

每次我单击一个按钮时,它都会获取其各自的“num”值并执行切换。但是,当我单击另一个按钮时,它并没有切换 num 的值。它取 num 之前的值。

【问题讨论】:

  • 不要发动一场圣战,但似乎堆栈溢出代码格式更喜欢空格而不是制表符......
  • 这是否准确地反映了代码?如果是这样,它甚至不应该编译。 “Switch”和“Case”不应大写,并且大小写标签位于冒号之前,而不是之后(例如“1:”,而不是“:1”)。除此之外,样本有点太少了。看起来没有足够的代码来说明发生了什么。请创建并发布一个最小的测试用例:它应该尽可能短,但代码应该足够完整和独立,并且应该遇到与您尝试调试的代码相同的问题。
  • outis 说的是非常好的建议。这是解决问题的最佳方式。

标签: iphone objective-c switch-statement


【解决方案1】:

case 和 switch 都应该是小写。正确的语法是

case 1: {
}

不是

case:1{
}

如果它仍然不起作用,我会使用 num 向您的方法添加一个参数,而不是将其作为属性。

-(void)add_scrollviewWithId:(int) id;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2015-10-27
    • 2012-04-24
    相关资源
    最近更新 更多