在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] 删除。
我来说两句