for (NSString *metarComponent in self.readingComponents) {
if ( [metarComponent hasPrefix:@"+"]
|| [metarComponent hasPrefix:@"-"]
|| [metarComponent hasPrefix:@"VC"]
|| [metarComponent hasPrefix:@"MI"]
|| [metarComponent hasPrefix:@"PR"])
|| [metarComponent hasPrefix:@"BC"])
|| [metarComponent hasPrefix:@"DR"])
|| [metarComponent hasPrefix:@"BL"])
|| [metarComponent hasPrefix:@"SH"])
|| [metarComponent hasPrefix:@"TS"])
|| [metarComponent hasPrefix:@"PZ"])
|| [metarComponent hasSuffix:@"DZ"])
|| [metarComponent hasSuffix:@"RA"])
|| [metarComponent hasSuffix:@"SN"])
|| [metarComponent hasSuffix:@"SG"])
|| [metarComponent hasSuffix:@"IC"])
|| [metarComponent hasSuffix:@"PL"])
|| [metarComponent hasSuffix:@"GR"])
|| [metarComponent hasSuffix:@"GS"])
|| [metarComponent hasSuffix:@"UP"])
|| [metarComponent hasSuffix:@"BR"])
|| [metarComponent hasSuffix:@"FG"])
|| [metarComponent hasSuffix:@"FU"])
|| [metarComponent hasSuffix:@"VA"])
|| [metarComponent hasSuffix:@"DU"])
|| [metarComponent hasSuffix:@"SA"])
|| [metarComponent hasSuffix:@"HZ"])
|| [metarComponent hasSuffix:@"PY"])
|| [metarComponent hasSuffix:@"PO"])
|| [metarComponent hasSuffix:@"SQ"])
|| [metarComponent hasSuffix:@"FC"])
|| [metarComponent hasSuffix:@"SS"])
|| [metarComponent hasSuffix:@"DS"]) {
[rawWeatherStrings addObject:metarComponent];
}
}
最佳答案
我会创建一个 NSSet 前缀和一个 NSSet 后缀,然后在这些集合上使用 containsObject 将第一个字符(也是检查前缀集后的前两个字符)和最后两个字符从有问题的字符串中提取出来,以检查集合。查找将非常快。
关于iphone - 这个巨大的 if 语句感觉很不稳定......你会如何在 Objective C 中做到这一点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867235/