有没有更好的方法来比较字符串与多个字符串?

War*_*ior 1 string iphone logic compare

我想比较一个字符串与多个字符串.例如

if([var isEqualToString:@"Box"]||[var isEqualToString:@"Ball"]|[varisEqualToString:@"Bat"])
{
some function
}else{
some function
}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我必须与15字符串进行比较,所以我必须检查15次.是否有任何其他更好的方法来比较它.是否有任何小的简单代码将实现我的逻辑.

Elf*_*red 7

您最好将字符串添加到NSSet,如下所示:

NSSet *mySet = [NSSet setWithObjects:@"Box", @"Ball", @"Bat", nil];
if([mySet containsObject:string]) {
} else {
}
Run Code Online (Sandbox Code Playgroud)

许多其他解决方案使用数组或字典用于相同的目的.集合是正确的数据结构,因为它们是为了包含无序对象和测试成员资格而创建的.containsObject:NSArray需要进行元素搜索的相同方法相比,我非常确定在恒定时间内运行.