IOS/Objective-C:访问开关语句中的变量



我有一个switch语句,在大多数情况下返回静态值,但在少数情况下,我想调用一个函数来获取值。因此,我在案例中放置了大括号,这显然定义了变量的范围。

我可以在开关大小写的范围内获取该值,但无法将其从大小写中取出,以便以后可以使用它。

当我这样做时:

case 2018:
{
NSString * myText = [self getMyText];
NSArray *myTextArr = [myText componentsSeparatedByString:@"**"];
responseOptions = myTextArr;
}
myOutsideArr = myTextArr;  ///This throws an undeclared identifier error
break;

在牙套外无法识别responseOptions

有没有办法从大括号定义的范围内访问值?

提前感谢您的任何建议。

无法从外部访问机箱内的数据。

但是,从某种意义上讲,带有中断开关大小写意味着案例值只有一个巧合,您可以将案例数据保存在外部变量中,而不必担心被覆盖。 所以你可以这样做:

NSArray *myOutsideArr = [NSArray array];
int year = 2018;
switch (year) {
case 2018: {
NSString * myText = [self getMyText];
NSArray *myTextArr = [myText componentsSeparatedByString:@"**"];
myOutsideArr = myTextArr;
break;
}
case 2017: {
// ...
}
}