加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么我的切换案例有时需要在Objective-C中使用大括号?

发布时间:2020-12-16 10:24:43 所属栏目:百科 来源:网络整理
导读:参见英文答案 Why can’t variables be declared in a switch statement?????????????????????????????????????23个 有时Xcode会在案例后的行上显示错误“预期表达式”.例如,Xcode指向带有红色箭头的UserContentViewController: - (void)tableView:(UITable
参见英文答案 > Why can’t variables be declared in a switch statement?????????????????????????????????????23个
有时Xcode会在案例后的行上显示错误“预期表达式”.例如,Xcode指向带有红色箭头的UserContentViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    switch (indexPath.row) {
        case IndexVideo: 
            UserContentViewController* detailViewController = [[UserContentViewController alloc] initWithUser:self.user];
            [self.navigationController pushViewController:detailViewController animated:YES];
            break;

    }
}

如果我在我的案子周围放置括号,错误就消失了.首先,我想知道不使用大括号的问题是什么.在任何其他语言的情况下,我从未使用大括号.其次,为什么Xcode只会在极少数情况下抱怨我的案件?我无法辨别哪种类型的代码会触发此错误.

解决方法

基本上,如果要声明变量,则需要添加大括号来定义范围.

ARC还添加了一些要求(或者更严格的要求)来定义范围(因此,在升级旧代码库时,可能会出现一些“切换案例在受保护范围内”的错误).这是因为ARC需要详细了解变量何时/不能被引用,以便它可以正确处理释放.

一切都与向编译器提供有关已声明变量范围的足够信息有关.他们应该是一个案件的一部分,还是多个案件……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读