iphone - 这个巨大的 if 语句感觉很不稳定......你会如何在 Objective C 中做到这一点

标签 iphone objective-c cocoa-touch

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/

相关文章:

ios - 将 CollectionView 连接到 ViewController,连接 dataSource-Swift-XCode 时出错

ios - 点击以切换全屏 - 不透明标签栏的问题

objective-c - XCode 模板中的 ivars 以一个或两个下划线为前缀

objective-c - MVC模型实现?

ios - UINavigationController 的 UINavigationBar 中的 UISearchBar 不可点击

android - 为什么 Android 模拟器比 iPhone 模拟器慢很多?

ios - UITableView 是否可以包含一些自定大​​小的单元格和自定义高度的单元格?

ios - 从带有方向的 ios 应用程序打开苹果 map 应用程序

ios - 如何使用[NSObject实例RespondToSelector]

ios - 使用适用于 iOS 的 Classy,如何向 UILabel 添加阴影