在 Swift 中,possible用于检查类似的元组,
switch(type1, type2) {
case (1, 1):
functionNormal()
case (1, 2):
functionUncommon()
case (1, 3):
functionRare()
...
}
是否可以在 Objective-C 切换的情况下检查类似多个值的元组? 可以吗?
最佳答案
可能有多种方法,具体取决于您的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;
}
关于ios - 如何在Objective-C中检查多个Switch大小写值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59857896/