奇怪的“开关盒”陈述

发布于 2024-11-03 10:52:54 字数 527 浏览 2 评论 0原文

我的一个文件中有这段代码:

switch ([sender tag]){
    ...

    case 100:
        UIView *v1 = [UIView alloc] initWithFrame blabllabla...
        [v1  bla bla bla...
        break;
    ...

看起来很标准吧?但它给了我这个错误:

"Use of undeclared v1"

然后我放了一个“NSLog()”或“if”语句,如下所示:

case 100:
    NSLog(@"why need a nslog here?");

case 100:
    if(1==1) {
        ...

然后它就起作用了。

有谁知道这是为什么吗?是我的代码还是objective-c规则?

I have this piece of code in one of my file:

switch ([sender tag]){
    ...

    case 100:
        UIView *v1 = [UIView alloc] initWithFrame blabllabla...
        [v1  bla bla bla...
        break;
    ...

Looks pretty standard huh? But it gives me this error:

"Use of undeclared v1"

Then i put an "NSLog()" or "if" statement, like this:

case 100:
    NSLog(@"why need a nslog here?");

or

case 100:
    if(1==1) {
        ...

Then it works.

Anyone know why is that? Is it my code or objective-c rules?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ヅ她的身影、若隐若现 2024-11-10 10:52:55

如果不使用 C 块,则无法声明其范围仅限于 case 的变量。将其更改为:

case 100:
{
    UIView *v1 = [UIView alloc] initWithFrame blabllabla...
    [v1  bla bla bla...
    break;
}

它应该可以工作。

You cannot declare variables whose scope is limited to a case without using a C block. Change it to:

case 100:
{
    UIView *v1 = [UIView alloc] initWithFrame blabllabla...
    [v1  bla bla bla...
    break;
}

and it should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文