ios - 如何在Objective-C中检查多个Switch大小写值?

标签 ios objective-c switch-statement

Swift 中,possible用于检查类似的元组,

switch(type1, type2) {
    case (1, 1):
        functionNormal()
    case (1, 2):
        functionUncommon()
    case (1, 3):
        functionRare()
    ...
}

是否可以在 Objective-C 切换的情况下检查类似多个值的元组? 可以吗?

最佳答案

可能有多种方法,具体取决于您的type1type2数据可能是什么。

但是,这是一个基本示例:

NSInteger i = 1;
NSInteger j = 2;

switch (i) {
    case 1:
        switch (j) {
            case 1:
                [self functionNormal];
                break;

            case 2:
                [self functionUncommon];
                break;

            case 3:
                [self functionRare];
                break;

            default:
                NSLog(@"first value: 1 ... missing case for second value: for %ld", (long)j);
                break;
        }
        break;

    case 2:
        switch (j) {
            case 1:
                [self secondFunctionNormal];
                break;

            case 2:
                [self secondFunctionUncommon];
                break;

            case 3:
                [self secondFunctionRare];
                break;

            default:
                NSLog(@"first value: 2 ... missing case for second value: %ld", (long)j);
                break;
        }
        break;

    default:
        NSLog(@"missing first case for first value: %ld", (long)i);
        break;
}

当然,这效率很低,但是也许可以带您上路。

编辑

同样,这将取决于您的数据,但是另一种方法更类似于您的Swift示例:
NSInteger i = 1;
NSInteger j = 2;

NSInteger ij = i * 1000 + j;

switch (ij) {
    case 1001:
        [self functionNormal];
        break;

    case 1002:
        [self functionUncommon];
        break;

    case 1003:
        [self functionRare];
        break;

    case 2001:
        [self secondFunctionNormal];
        break;

    case 2002:
        [self secondFunctionUncommon];
        break;

    case 2003:
        [self secondFunctionRare];
        break;

    default:
        NSLog(@"case was something else: %ld", (long)ij);
        break;
}

关于ios - 如何在Objective-C中检查多个Switch大小写值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59857896/

相关文章:

ios - 多个推送 Segues 到 Storyboard 中的一个 View Controller

iphone - UITabBarItem 执行 IBAction Xcode 4.2

ios - iPhone 应用程序的聊天 API

ios - 立即 dimissViewController 后,presentViewController 时为空白

c++ - 我们可以用 C++ 开关写这个吗?

ios - 在 iOS 上播放 youtube 视频

objective-c - 如何将导入添加到生成的 module-swift.h 文件中?

ios - Swift 3-使用自定义对象声明NSMutableArray数据类型

c++ - 为什么默认关闭 C4062 Visual C++ 警告?

autocomplete - 安卓工作室 : Enum auto-completion of switch case