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

萨扎德(Sazzad Hissain Khan)

Swift中可以检查一个元组,例如

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

Objective-C Switch情况下是否可以检查多个值之类的元组可以吗

唐马格

可能有多种方法,具体取决于您的数据type1和实际type2数据。

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

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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中反转String的大小写?

不论大小写如何检查地图中的键?

在邮递员中,无论数组大小写或顺序如何,如何检查响应中的值是否与请求中的值相同?

在Objective-C中大写或更改NSString的大小写

如何在Objective-C中传递多个参数?

如何使switch-case语句不区分大小写?

如何在Objective-C(iOS)中检查NaN值

如何定义不区分大小写但值区分大小写的SQL Server列名

如何在Elasticsearch中实现区分大小写的搜索?

如何在Swift中检查带有关联值的枚举的枚举大小写

如何将多个值添加到区分大小写的Powershell哈希表?

如何在不区分大小写c#的情况下检查枚举值中的“包含”?

如何在此XPath C#Selenium中忽略大小写

如何在PostgreSQL中处理区分大小写

如何在Emacs中搜索区分大小写的标签?

如何在崇高文本中的“标题大小写”中更改所有标题属性的值

如何在异步方法中检查无效的输入大小写?

在Objective-C中接受不区分大小写的前缀

如何在SQL中按大小写排序?

如何在Objective-C中更改NSMutableAttributedString的大小写?

如何在Objective C中存储块?

如何检查PHP中的前2个字符(不区分大小写)?

如何在C ++中实现与unicode无关的不区分大小写的比较

如何替换字典列表中的字典值中的关键字(不区分大小写)?

如何检查jinja2 / django模板中任何变量的大小写?

如何在 C# 中的 List<string> 上切换大小写

如何在快速搜索中删除区分大小写?`

如何在Angular中检查字符串是否包含忽略大小写的子字符串

如何在mongodb中检查多个字段并检查区分大小写