为什么我的切换案例有时需要在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需要详细了解变量何时/不能被引用,以便它可以正确处理释放. 一切都与向编译器提供有关已声明变量范围的足够信息有关.他们应该是一个案件的一部分,还是多个案件…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |