如何使用accept string参数创建switch语句
-(int)Type:(NSString *)typeName{
switch (typeName) {
case @"MEN":
NSLog(@"MEN");
break;
case @"FEMALE":
NSLog(@"FEMALE");
break;
default:
NSLog(@"FEMALE");
break;
}
}
我在php中测试它正常工作
$name = "JHON";
switch ($name) {
case "JHON" :
{
echo "Im JHON";
break;
}
case "KIRAN":
{
echo "Im KIRAN";
break;
}
default:{
echo "Im default";
}
}
?>
接受字符串条件的切换案例不起作用objective-c其错误消息说语句需要表达整数类型。 (NSString _string无效)
答案 0 :(得分:2)
嗯,你得到的错误有点放弃,切换目标-c只适用于整数,而不是字符串......
答案 1 :(得分:0)
如上所述,您通常不能将switch
用于非整数的东西(在最流行的编程语言中,包括Objective-C)。但是,您可以检查this question以获得接近语法的方法,而无需使用if-else。
答案 2 :(得分:0)
在Objective C
中,您无法在Strings
中使用Switch
,但您可以使用NSDictionary
替代,请查看此stackoverflow link以供参考。因此,从链接中,您的代码可以重写为
typedef void (^CaseBlock)();
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
^() { NSLog(@"MEN"); }, @"MEN",
^() { NSLog(@"WOMEN"); }, @"WOMEN",
^() { NSLog(@"MALE"); }, @"MALE",
^() { NSLog(@"FEMALE"); }, @"FEMALE",
nil];
CaseBlock c = dict[@"MEN"];
if (c) c(); else {
// default: case
NSLog(@"Female");
}