【问题标题】:IOS/Objective-C: Access to variables within switch statementsIOS/Objective-C:访问 switch 语句中的变量
【发布时间】:2019-03-02 17:04:54
【问题描述】:

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

我可以在 switch case 的范围内获取值,但无法将其从 case 中取出以便以后使用。

当我这样做时:

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

responseOptions 在大括号外无法识别。

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

提前感谢您的任何建议。

【问题讨论】:

  • 然后在大括号甚至开关之前定义它?

标签: ios objective-c switch-statement


【解决方案1】:

无法从外部访问案例内的数据。

但由于 switch-casebreak 意味着您对于案例值只有一个巧合,您可以将案例数据保存在外部变量而不用担心被覆盖。 所以你可以这样做:

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

【讨论】:

    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 2011-12-19
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多