gpt4 book ai didi

objective-c - 我可以在 Objective-C switch 语句中声明变量吗?

转载 作者:IT老高 更新时间:2023-10-28 11:30:36 26 4
gpt4 key购买 nike

我想我要瞎了,因为我不知道这段代码中的语法错误在哪里:

if( cell == nil ) {
titledCell = [ [ [ TitledCell alloc ] initWithFrame:CGRectZero
reuseIdentifier:CellIdentifier ] autorelease
];

switch( cellNumber ) {
case 1:
NSString *viewDataKey = @"Name";
etc...

当我尝试编译它时,我得到一个 Error: syntax error before '*' token 在最后一行。

很抱歉问了这么一个基本问题,但我错过了什么?

最佳答案

我手头没有合适的 Objective-C 编译器,但只要 C 结构相同:

switch { ... } 为您提供 一个 block 级范围,而不是每个 case 一个。在作用域开头以外的任何地方声明变量都是非法的,并且在 switch 内部是特别危险的,因为它的初始化可能会被跳过。

以下任一方法能否解决问题?

NSString *viewDataKey;
switch (cellNumber) {
case 1:
viewDataKey = @"Name";

}

switch (cellNumber) {
case 1: {
NSString *viewDataKey = @"Name";

}

}

关于objective-c - 我可以在 Objective-C switch 语句中声明变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com