在Objective-C中,对NSString进行switch case操作

21 浏览
0 Comments

在Objective-C中,对NSString进行switch case操作

我想使用带有NSString的case语句

请将我的代码改为正确的代码

NSString *day = @"Wed";
if ([day isEqualToString:@"Sat"]) {
    NSLog(@"Something...");
} else if ([day isEqualToString:@"Sun"]) {
    NSLog(@"Something else...");
} else {
    // 其他情况
}

0
0 Comments

switch case在Objective-C中不能直接用于NSString类型的变量,而是只能用于整型或字符型的变量。但是,如果想要实现类似于switch case的功能,可以使用字典和block来实现。

上面的代码提供了两种使用字典和block实现类似于switch case的方式。

第一种方式是使用一个字典来存储不同的case对应的block,然后根据key来获取对应的block并执行。这种方式需要先定义一个指向block的变量selectedCase,然后通过字典获取对应的block,并将其赋值给selectedCase变量,最后通过判断selectedCase是否为nil来执行对应的block。

第二种方式是将整个逻辑都写在一个语句中,使用了NSDictionary字面量和三目运算符。首先,将不同的case对应的block以NSDictionary字面量的形式存储起来,然后通过key获取对应的block,并通过三目运算符来判断是否存在default case,如果存在则执行default case对应的block。

虽然第二种方式更加简洁,但可读性较差,因此大部分人还是更倾向于使用if/else语句来实现类似的功能。

总结起来,以上内容介绍了在Objective-C中使用字典和block来实现类似于switch case的功能的两种方式。这种方式可以提供更加灵活和便捷的代码编写方式,但也会牺牲部分可读性。

0
0 Comments

在Objective-C中,switch语句无法直接使用NSString作为判断条件,只能使用整数类型。这是因为switch语句的设计初衷是用于处理整数范围的判断,而不是处理字符串的判断。因此,如果我们需要根据字符串的内容进行判断,就不能使用switch语句,而需要使用if else语句来替代。

解决方法就是使用if else语句来代替switch语句。在这个例子中,我们首先创建了一个NSString类型的变量day,并将其赋值为"Wed"。然后,我们使用if else语句来判断day的值,并根据不同的值执行不同的代码逻辑。比如,如果day的值等于"Sat",则执行某些操作;如果day的值等于"Sun",则执行另一些操作。通过使用if else语句,我们可以根据字符串的内容来进行判断和执行相应的操作。

下面是使用if else语句替代switch语句的示例代码:

NSString *day = @"Wed";
if([day isEqualToString:@"Sat"]) {
        NSlog(@"Somthing...");
       }
else if([day isEqualToString:@"Sun"]) {
        NSlog(@"Somthing...");
       }
...

在这个示例代码中,我们使用了if else语句来判断day的值,并根据不同的值执行不同的代码逻辑。如果day的值等于"Sat",则输出"Somthing...";如果day的值等于"Sun",则输出"Somthing..."。通过使用if else语句,我们可以根据字符串的内容来进行判断和执行相应的操作,实现了与switch语句类似的功能。

总之,在Objective-C中,switch语句无法直接处理NSString类型的判断条件,只能处理整数类型。如果我们需要根据字符串的内容来进行判断,就需要使用if else语句来替代switch语句。通过使用if else语句,我们可以根据字符串的内容来进行判断和执行相应的操作,实现了与switch语句类似的功能。

0