我目前正在尝试查看字符串的前两个字符,并且根据它们的不同,我想做点什么。有6种可能性:AA,BB,CC,AB,BC,CA。
我尝试了以下操作,但一直收到以下错误:
NSString *housing = [myArray firstObject];
switch([housing compare:housing options:@"AA", @"BB", @"CC", @"AB", @"BC", @"CA" range:2]) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
default:
break;
}
答案 0 :(得分:4)
(1)NSString
之前的compare
和NSString
之后的compare
是您要相互比较的字符串,因此要将“住房”与“住房”进行比较“住房”没有意义。
(2)你误导options
。 options
仅接受以下搜索选项 - NSCaseInsensitiveSearch,NSLiteralSearch,NSNumericSearch。
(3)范围必须是NSRange,而不仅仅是数字。
编辑:想想一个非常优雅的解决方案,如果我自己也不这么说......(虽然这是凌晨3点,所以你应该仔细检查逻辑以确保我不会神志不清。)
// Check to see if the first 2 characters of the housing string are in an array of the characters
switch([[@"AA", @"BB", @"CC", @"AB", @"BC", @"CA"] indexOfObject:[housing substringWithRange:NSMakeRange(0, 2)]){
case 0: // Do something if first 2 characters are AA
break;
case 1: // Do something if first 2 characters are BB
break;
// etc ...
default: // Do something if not found
break;
}