博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:switch case中报错expected expression
阅读量:7235 次
发布时间:2019-06-29

本文共 882 字,大约阅读时间需要 2 分钟。

switch语句在java中使用很正常,但在OC里就出现问题了:

像下面的语句XZXHelpViewController将无法识别,从而报expected expression的错误

如果之前加上一条NSLog语句或者其他一些语句,则可以识别,但default:break;语句将报错

- (void)buttonClicked:(UIButton *)sender{

    switch (sender.tag) {

        case 1:

    // NSLog(@"moonglow");

            XZXHelpViewController *help = [[XZXHelpViewControlleralloc] initWithNibName:@"XZXHelpViewController"bundle:nil];

            [selfpresentViewController:help animated:YEScompletion:NULL];

            break;

        default:

            break;

    }

解决的办法是在case语句后加大括号

- (void)buttonClicked:(UIButton *)sender{

    switch (sender.tag) {

        case 1:{

            XZXHelpViewController *help = [[XZXHelpViewControlleralloc] initWithNibName:@"XZXHelpViewController"bundle:nil];

            [selfpresentViewController:help animated:YEScompletion:NULL];

            break;

   } 

        default:

            break;

    }

有人说加分号也可以,其实跟加NSLog一个意思,会导致default:break;报错。

至于为什么需要加大括号,如果有大牛看到此帖,还请指教!

转载于:https://www.cnblogs.com/yy3026906/archive/2013/05/03/3057157.html

你可能感兴趣的文章
解决duilib水平布局(HorizontalLayout)中控件位置计算错误的问题
查看>>
SSL/TLS协议运行机制的概述_转
查看>>
数据库可视化操纵软件有navicat和sqlyog
查看>>
【转】批处理命令请求以管理员身份运行
查看>>
ASP.NET Web API 过滤器创建、执行过程(二)
查看>>
python读取excel(xlrd)
查看>>
RSA的公钥、私钥
查看>>
Uniform Resource Identifier
查看>>
UWP 浏览本地图片及对图片的裁剪
查看>>
Xshell高级后门完整分析报告
查看>>
一起谈.NET技术,数组排序方法的性能比较(3):LINQ排序实现分析
查看>>
括号自动补全
查看>>
Redis复制与可扩展集群搭建
查看>>
Express入门教程:一个简单的博客
查看>>
一份React-Native学习指南-感谢分享
查看>>
在Linux中使用VS Code编译调试C++项目
查看>>
JS创建select的optgroup
查看>>
win7无法ping通原因
查看>>
Javascript综合手册
查看>>
宏定义中使用do{}while(0)的好处 (转载)
查看>>